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

# API Health Check

> You can automatically check whether APIs and web services are continuously running, track performance metrics, detect problems early, and send notifications in case of failures.

## Overview

<CardGroup cols={2}>
  <Card title="24/7 Monitoring" icon="clock">
    Continuously monitor the availability of your APIs
  </Card>

  <Card title="Performance Metrics" icon="chart-line">
    Track response times and success rates
  </Card>

  <Card title="Early Warning" icon="bell">
    Detect problems before users are affected
  </Card>

  <Card title="Automatic Notifications" icon="envelope">
    Receive instant notifications for quick intervention
  </Card>
</CardGroup>

<Frame caption="API Health Check settings form - All configuration fields">
  <img src="https://mintcdn.com/apinizer/LoT_QidIA2t_0Oih/images/monitor/api-saglik-kontrolu/01-ayarlar-formu.png?fit=max&auto=format&n=LoT_QidIA2t_0Oih&q=85&s=0a074b1e67add2c87f8120ba70ca4697" alt="API Health Check Settings Form" width="1000" height="800" style={{ borderRadius: '0.5rem' }} data-path="images/monitor/api-saglik-kontrolu/01-ayarlar-formu.png" />
</Frame>

## What is API Health Check?

### Basic Concept

API Health Check is a monitoring system that **automatically sends test requests at specified intervals** to an API endpoint or web service you specify.

<AccordionGroup>
  <Accordion title="When to Use?">
    <CardGroup cols={2}>
      <Card title="Critical API Monitoring" icon="shield">
        Continuous monitoring of critical APIs such as payment and authentication
      </Card>

      <Card title="SLA Tracking" icon="file-contract">
        Tracking and reporting of service level agreements
      </Card>

      <Card title="Performance Monitoring" icon="gauge">
        Monitoring API response times and trend analysis
      </Card>

      <Card title="Uptime Monitoring" icon="server">
        Tracking service uptime
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="How Does It Work?">
    <Steps>
      <Step title="Configuration">
        URL to be checked, HTTP method, expectations, and scheduling are determined
      </Step>

      <Step title="Scheduling">
        Test requests are automatically sent at specified times (e.g., every 5 minutes)
      </Step>

      <Step title="Test Execution">
        HTTP request is sent and response is received
      </Step>

      <Step title="Validation">
        Expectations (assertions) are checked:

        * Response time check
        * HTTP status code check
        * Response content check
        * XPath/JSONPath checks
      </Step>

      <Step title="Result Recording">
        Test result is recorded (successful/failed)
      </Step>

      <Step title="Notification">
        If the test fails, configured notifications are triggered
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## Quick Start

### Creating Your First Health Check

<Steps>
  <Step title="Access from Menu">
    Click **Main Menu** → **Monitoring** → **API Health Check**
  </Step>

  <Step title="Create New Check">
    Click the **"Create New"** button
  </Step>

  <Step title="Fill in Basic Information">
    * **Name**: A name for your check (e.g., "Payment API Check")
    * **Description**: Optional description
  </Step>

  <Step title="Enter Request Information">
    * **HTTP Method**: GET, POST, etc.
    * **URL**: API endpoint to be tested
  </Step>

  <Step title="Set Scheduling">
    Determine check frequency (e.g., Every 5 minutes)
  </Step>

  <Step title="Save">
    Click the **"Save"** button
  </Step>
</Steps>

## Creating New Health Check

### Step 1: Basic Information

<AccordionGroup>
  <Accordion title="Name - Required">
    Enter a unique name for the health check. This name:

    * Must be unique within the project
    * Cannot start with a space
    * System automatically checks the availability of the name

    **Good Name Examples:**

    * `Payment API Monitoring`
    * `User Service Health Check`
    * `Third-Party Integration Check`
    * `Homepage Availability Check`
  </Accordion>

  <Accordion title="Description - Optional">
    You can enter descriptive information about the health check:

    * Maximum 1000 characters
    * Used to explain the purpose and scope of the check
    * Displayed on the list page

    **Example Descriptions:**

    * `Created for 24/7 monitoring of critical payment API`
    * `Customer portal homepage availability check`
    * `Third-party service provider integration monitoring`
  </Accordion>

  <Accordion title="Status - Default: Active">
    Determines the active/passive status of the health check:

    * **Active**: Check runs, scheduled tests are sent
    * **Passive**: Check is stopped, no tests are sent (historical data is preserved)
  </Accordion>
</AccordionGroup>

### Step 2: Scheduling Settings

Determine how frequently the health check will run. Scheduling is done using **Cron Expression**.

#### Common Scheduling Examples

| Description           | Cron Expression  | Use Case                          |
| --------------------- | ---------------- | --------------------------------- |
| Every 5 minutes       | `0 */5 * ? * *`  | For critical APIs (most common)   |
| Every 15 minutes      | `0 */15 * ? * *` | For normal APIs                   |
| Every hour            | `0 0 * ? * *`    | For Test/Development environments |
| Every day at 09:00    | `0 0 9 * ? *`    | For daily reporting               |
| Every Monday at 09:00 | `0 0 9 ? * MON`  | For weekly checks                 |

<Tip>
  **Recommendations:**

  * **Critical APIs**: Every 5 minutes
  * **Normal APIs**: Every 15-30 minutes
  * **Test/Development**: Every hour
  * **Reporting purposes**: Daily or weekly
</Tip>

### Step 3: Request Settings

In this section, you configure the information of the endpoint to be tested.

<AccordionGroup>
  <Accordion title="Select From Collection - Recommended">
    You can use test scenarios you previously created in Test Console:

    <Steps>
      <Step title="Click Button">
        Click the **"Select From Collection"** button
      </Step>

      <Step title="Select Collection">
        View your test collections in the opened dialog
      </Step>

      <Step title="Select Scenario">
        Select the test scenario you want
      </Step>

      <Step title="Auto-Fill">
        Test information automatically fills the form
      </Step>
    </Steps>

    <Info>
      **Advantages:**

      * You save time
      * You use consistent test scenarios
      * You can manage your test scenarios centrally
    </Info>
  </Accordion>

  <Accordion title="HTTP Method - Required">
    Select HTTP request method:

    <CardGroup cols={2}>
      <Card title="GET" icon="download">
        Data reading (most commonly used)
      </Card>

      <Card title="POST" icon="upload">
        Data sending
      </Card>

      <Card title="PUT" icon="edit">
        Data updating
      </Card>

      <Card title="DELETE" icon="trash">
        Data deletion
      </Card>

      <Card title="PATCH" icon="wrench">
        Partial update
      </Card>

      <Card title="HEAD" icon="info">
        Header information only
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="URL - Required">
    Enter the full URL of the endpoint to be tested:

    **Examples:**

    * `https://api.example.com/users`
    * `https://api.example.com/payment/verify`
    * `http://localhost:8080/health`
    * `https://api.example.com/v1/products?category=electronics`

    <Warning>
      **Notes:**

      * URL must be absolute
      * HTTPS and HTTP are supported
      * Query parameters can be added to URL or specified in a separate field
    </Warning>
  </Accordion>

  <Accordion title="Parameters - Optional">
    Used to add query parameters to URL:

    **Example:**

    * Parameter Name: `userId`
    * Parameter Value: `12345`

    **Result URL:** `https://api.example.com/users?userId=12345`
  </Accordion>

  <Accordion title="Headers - Optional">
    Used to add headers to HTTP request:

    **Common Uses:**

    * **Authorization**: `Bearer token123` or `Basic base64encoded`
    * **Content-Type**: `application/json`, `application/xml`
    * **X-API-Key**: `your-api-key`
    * **Custom Headers**: Custom headers

    **Example:**

    * Header Name: `Authorization`
    * Header Value: `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`
  </Accordion>

  <Accordion title="Body - For POST/PUT/PATCH">
    You can enter request body:

    **Supported Formats:**

    * **Raw**: JSON, XML, Text
    * **Form URL Encoded**: Form data

    **JSON Example:**

    ```json theme={null}
    {
        "userId": 12345,
        "action": "verify",
        "timestamp": "2024-01-15T10:30:00Z"
    }
    ```

    **XML Example:**

    ```xml theme={null}
    <request>
        <userId>12345</userId>
        <action>verify</action>
    </request>
    ```
  </Accordion>
</AccordionGroup>

### Step 4: Validation Settings

Validation (Assertion) settings determine the checks required for the test result to be considered successful.

<AccordionGroup>
  <Accordion title="Timeout Check (Timeout Assertion)">
    When this option is activated, the specified timeout value is also used for validation:

    * Request must be responded to within the specified time
    * Otherwise test is considered failed
  </Accordion>

  <Accordion title="HTTP Status Code Check (Status Code Assertion)">
    To perform HTTP status code check:

    <Steps>
      <Step title="Activate Toggle">
        Activate the **"Result Status Code"** toggle
      </Step>

      <Step title="Enter Status Code">
        Enter the expected status code in the **"Expected Status Code"** field
      </Step>
    </Steps>

    **Default Value:** `200` (OK)

    **Common Status Codes:**

    * `200`: Successful
    * `201`: Created
    * `204`: No Content
    * `400`: Bad Request
    * `401`: Unauthorized
    * `404`: Not Found
    * `500`: Server Error

    **Example Scenario:**

    * Expected Status Code: `200`
    * Actual Status Code: `200` → ✅ Successful
    * Actual Status Code: `500` → ❌ Failed
  </Accordion>

  <Accordion title="Response Body Check (Body Assertion)">
    Checks whether the response body contains specific content:

    <Steps>
      <Step title="Activate Toggle">
        Activate the **"Result Body"** toggle
      </Step>

      <Step title="Enter Content">
        Enter the expected content in the **"Expected Result Body"** field
      </Step>
    </Steps>

    **Use Cases:**

    * Response should contain specific text: `"status": "success"`
    * Response should contain specific value: `"active": true`
    * Response should not be empty

    **Example:**

    * Expected: `"status": "ok"`
    * Actual: `{"status": "ok", "data": {...}}` → ✅ Successful
    * Actual: `{"status": "error"}` → ❌ Failed
  </Accordion>

  <Accordion title="XPath Check (XPath Assertion) - For XML">
    Performs check using XPath in XML responses:

    <Steps>
      <Step title="Activate Toggle">
        Activate the **"XPath Result"** toggle
      </Step>

      <Step title="Enter XPath">
        Enter the XPath expression in the **XPath** field
      </Step>

      <Step title="Enter Expected Value">
        Enter the expected value in the **Expected XPath Result** field
      </Step>
    </Steps>

    **Example:**

    * XPath: `/response/status`
    * Expected Result: `success`
    * Actual XML: `<response><status>success</status></response>` → ✅ Successful
  </Accordion>

  <Accordion title="JSONPath Check (JSONPath Assertion) - For JSON">
    Performs check using JSONPath in JSON responses:

    <Steps>
      <Step title="Activate Toggle">
        Activate the **"JsonPath Result"** toggle
      </Step>

      <Step title="Enter JSONPath">
        Enter the JSONPath expression in the **JsonPath** field
      </Step>

      <Step title="Enter Expected Value">
        Enter the expected value in the **Expected JsonPath Result** field
      </Step>
    </Steps>

    **Example:**

    * JSONPath: `$.status`
    * Expected Result: `ok`
    * Actual JSON: `{"status": "ok", "data": {...}}` → ✅ Successful

    **Common JSONPath Examples:**

    * `$.status`: Status field at root
    * `$.data.items[0].id`: ID of first item
    * `$.user.name`: Name field of user object
    * `$.results[*].id`: IDs of all results
  </Accordion>
</AccordionGroup>

### Step 5: Settings

<AccordionGroup>
  <Accordion title="Timeout - Default: 30 seconds">
    Determines the maximum wait time for the request:

    * Entered in **seconds**
    * Default value: `30` seconds
    * If no response is received within this time, test is considered failed

    <Tip>
      **Recommendations:**

      * For fast APIs: `10-15` seconds
      * For normal APIs: `30` seconds
      * For slow APIs: `60` seconds or more
    </Tip>
  </Accordion>

  <Accordion title="SSL Certificate (Enable Certificate)">
    To use SSL certificate for HTTPS requests:

    * When this option is activated, custom SSL certificate can be used
    * Generally used for self-signed certificates or custom CA certificates
  </Accordion>
</AccordionGroup>

### Step 6: Retry Settings

To automatically retry in case of temporary issues:

<AccordionGroup>
  <Accordion title="Retry On Fail">
    <Steps>
      <Step title="Activate Toggle">
        Activate the **"Retry On Fail"** toggle
      </Step>

      <Step title="Select Number">
        Select **"Retry Count"**: `1`, `3`, `5`, or `10`
      </Step>
    </Steps>

    **How It Works:**

    * If the first request fails
    * Retries are made up to the specified number
    * Wait can be made between each attempt (optional)

    **Example Scenario:**

    * Retry Count: `3`
    * First request failed → 1st retry → failed → 2nd retry → failed → 3rd retry → successful → ✅ Successful
  </Accordion>

  <Accordion title="Delay Between Requests">
    To wait between retries:

    <Steps>
      <Step title="Activate Toggle">
        Activate the **"Delay Between Requests"** toggle
      </Step>

      <Step title="Enter Wait Time">
        Enter the wait time in seconds in the **"Wait"** field
      </Step>
    </Steps>

    **Default Value:** `3` seconds

    **Use Case:**

    * To reduce server load
    * To avoid rate limiting
    * To give time for temporary issues to resolve

    **Example:**

    * Retry Count: `3`
    * Wait: `5` seconds
    * First request failed → wait 5 sec → 1st retry → failed → wait 5 sec → 2nd retry → successful
  </Accordion>
</AccordionGroup>

### Step 7: Notification Recipients

Configure notifications that will be triggered when the test fails:

#### Adding Notifications

<Steps>
  <Step title="Add Notification">
    Click the **"+"** button in the **Recipients** table
  </Step>

  <Step title="Select Notification Type">
    Select notification type:

    * **Email**: Sends email notification
    * **Webhook**: Sends HTTP POST request
    * **Slack**: Sends message to Slack channel
    * **SMS**: Sends SMS notification
    * And more...
  </Step>

  <Step title="Complete Configuration">
    Complete the notification configuration
  </Step>
</Steps>

**Notification Management:**

* **Edit**: Select "Edit" from the menu to update notification information
* **Delete**: Select "Delete" from the menu to remove the notification
* **Active/Passive**: You can activate/deactivate the notification with toggle

**Notification Content:**
The following information is sent in notifications:

* Health check name
* Proxy name (if any)
* Target URL
* Error message
* Timestamp
* Test result details

### Step 8: Saving

After filling in all information:

<Steps>
  <Step title="Validation Check">
    Make sure form validations pass:

    * ✅ Name entered and available
    * ✅ URL entered
    * ✅ Scheduling settings configured
    * ✅ At least one assertion active (recommended)
  </Step>

  <Step title="Save">
    Click the **"Save"** button
  </Step>

  <Step title="Redirect">
    After the health check is saved, you will be automatically redirected to the listing page
  </Step>
</Steps>

## Monitoring and Reporting Results

### Accessing Results Page

<Steps>
  <Step title="Access from List">
    Click on the check name in the health check list
  </Step>

  <Step title="Access from Menu">
    Select **"Results"** option from the operations menu (⋮)
  </Step>
</Steps>

### Results Page Sections

<AccordionGroup>
  <Accordion title="1. Header Section">
    * **Date Range Selector**: Filter results by a specific date range
    * **Refresh Button**: Manually refresh results
    * **HTTP Method and URL**: Information about the tested endpoint
  </Accordion>

  <Accordion title="2. Status Summary">
    The general status of the health check is shown at the top of the page:

    **Response Time Graph:**

    * Line graph showing response times over time
    * X axis: Date/Time
    * Y axis: Response time (milliseconds)
    * You can see detailed information by hovering over the graph

    **Average Response Time:**

    * Average response time of all tests (milliseconds)
    * Shown in large and bold text
    * Important metric for performance evaluation

    **Success Rate:**

    * Ratio of successful tests to total tests (percentage)
    * Green: Good performance (95%+)
    * Yellow: Medium performance (80-95%)
    * Red: Low success rate (below 80%)

    <Frame caption="Status summary and test results table">
      <img src="https://mintcdn.com/apinizer/LoT_QidIA2t_0Oih/images/monitor/api-saglik-kontrolu/02-durum-ozeti-sonuclar.png?fit=max&auto=format&n=LoT_QidIA2t_0Oih&q=85&s=ba61dd78bff2c5b6aec631e06e8ace52" alt="Status Summary and Results" width="1000" height="800" style={{ borderRadius: '0.5rem' }} data-path="images/monitor/api-saglik-kontrolu/02-durum-ozeti-sonuclar.png" />
    </Frame>
  </Accordion>

  <Accordion title="3. Test Results Table">
    Table showing detailed results of each test run:

    **Columns:**

    * **Request Sent**: Date and time when the test request was sent
    * **Request Type**:
    * **Initial Request**: Normal test request
    * **Retry**: Retry request
    * **Response Time**: Response time of the request (milliseconds)
    * **Assertions**: Checks performed and their results:
    * ✅ **Timeout**: Request did not timeout
    * ✅ **Status Code**: Expected HTTP status code returned
    * ✅ **Result Body**: Response body validated
    * ✅ **XPath**: XPath check successful (for XML)
    * ✅ **JSONPath**: JSONPath check successful (for JSON)
    * **Result**:
    * 🟢 **Successful**: All checks passed
    * 🔴 **Failed**: At least one check failed
    * **Detail**: Eye icon (👁️) to view result details in JSON format
  </Accordion>
</AccordionGroup>

#### Viewing Result Details

<Steps>
  <Step title="Click Detail Button">
    Click the **eye icon** (👁️) button in the table
  </Step>

  <Step title="Review Details">
    In the opened dialog, you can view all details of the test result in JSON format:

    * Request information (URL, method, headers, body)
    * Response information (status code, headers, body)
    * Assertion results (result of each check)
    * Error messages (if any)
    * Timestamps
  </Step>
</Steps>

#### Deleting All Results

<Warning>
  This operation cannot be undone! All historical data will be lost.
</Warning>

<Steps>
  <Step title="Click Delete Button">
    Click the **trash can** (🗑️) icon in the table header
  </Step>

  <Step title="Deletion Completed">
    All results are permanently deleted
  </Step>
</Steps>

## Health Check Management

### List Page Features

On the health check list page, you can view and manage all your checks.

<AccordionGroup>
  <Accordion title="Search and Filtering">
    * **Search by Name**: Filter checks by typing in the name field
    * **Search by Description**: Search by typing in the description field
    * **Project Filter** (Admin mode): View checks from multiple projects
    * **Clear**: Click the eraser icon to clear all filters
  </Accordion>

  <Accordion title="Table Columns">
    * **Name**: Health check name (clickable, goes to results page)
    * **Description**: Check description
    * **Target URL**: URL of the tested endpoint
    * **Status**: Active/Passive status (can be changed with toggle)
    * **Project** (Admin mode): Project the check belongs to
    * **Operations**: Menu button (⋮)
  </Accordion>

  <Accordion title="Operations Menu">
    For each check, click the menu button (⋮) to perform the following operations:

    1. **Results**: View check execution results
    2. **Edit**: Update check settings
    3. **Delete**: Delete the check
    4. **Move to Global** (if project check): Move check to global project
  </Accordion>

  <Accordion title="Changing Status">
    To change the active/passive status of the check:

    <Steps>
      <Step title="Click Toggle">
        Click the toggle in the **Status** column in the table
      </Step>

      <Step title="Status Updated">
        Check status is updated instantly
      </Step>

      <Step title="Passive Checks">
        Passive checks do not run, but their historical data is preserved
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## Best Practices

<CardGroup cols={2}>
  <Card title="1. Naming Conventions" icon="tag">
    * **Use Descriptive Names**: Clear names like `Payment API Check`
    * **Add Project/Module Prefix**: Like `E-Commerce - Payment API`
    * **Add Environment Information**: Like `Production - User API`
  </Card>

  <Card title="2. Scheduling Strategy" icon="clock">
    * **Critical APIs**: Check every 5 minutes
    * **Normal APIs**: Check every 15-30 minutes
    * **Test Environments**: Check every hour
    * **Consider server load**
  </Card>

  <Card title="3. Assertion Usage" icon="check-circle">
    * **Use at least one assertion** (Status Code recommended)
    * **Always activate timeout assertion**
    * **Use body assertions carefully** (if variable content exists)
    * **Make specific checks using JSONPath/XPath**
  </Card>

  <Card title="4. Retry Strategy" icon="redo">
    * **Use retry for temporary issues**
    * **Keep retry count reasonable** (between 3-5)
    * **Reduce server load by using delay**
    * **Increase delay in rate limiting situations**
  </Card>

  <Card title="5. Notification Management" icon="bell">
    * **Use email + SMS notification for critical checks**
    * **Send notifications to your integration systems using Webhook**
    * **Filter to avoid notification spam**
    * **Create notification groups**
  </Card>

  <Card title="6. Performance Monitoring" icon="chart-line">
    * **Regularly check response times**
    * **Track success rates** (aim for 95%+)
    * **Perform trend analysis** (examine graphs)
    * **Set threshold values for anomaly detection**
  </Card>
</CardGroup>

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title="How Often Does Health Check Run?">
    The frequency of check execution depends on the **Scheduling** (Cron Expression) settings you determined when creating it. For example:

    * `0 */5 * ? * *` → Every 5 minutes
    * `0 0 * ? * *` → Every hour
    * `0 0 9 * ? *` → Every day at 09:00
  </Accordion>

  <Accordion title="What Happens When Check is Deactivated?">
    When check is deactivated:

    * No new test requests are sent
    * Existing scheduled jobs are cancelled
    * Historical results are preserved and can be viewed
    * Check continues normal operation when reactivated
  </Accordion>

  <Accordion title="How Does Retry Work?">
    When "Retry On Fail" feature is activated:

    1. First request is sent
    2. If it fails (any assertion fails)
    3. Retries are made up to the number you specified
    4. If there is wait between requests, wait for the specified duration
    5. If all attempts fail, result is recorded as "Failed"
  </Accordion>

  <Accordion title="When Are Notifications Sent?">
    Notifications (Recipients) are triggered in the following situations:

    * When test fails
    * Separate notification is sent for each failed test
    * Notifications are not sent for successful tests (default behavior)
  </Accordion>

  <Accordion title="How Do Assertion Checks Work?">
    Assertion checks are performed in the following order:

    1. **Timeout Check**: Was the request responded to within the specified time?
    2. **Status Code Check**: Does HTTP status code match the expected value?
    3. **Body Check**: Does response body match the expected content?
    4. **XPath Check**: Does XPath expression give correct result in XML response?
    5. **JSONPath Check**: Does JSONPath expression give correct result in JSON response?

    <Warning>
      **Important:** All active assertions must be successful. If any one fails, the test result is marked as "Failed".
    </Warning>
  </Accordion>

  <Accordion title="What is the Use of Selecting from Test Collection?">
    The select from test collection feature allows you to reuse test scenarios you previously created in Test Console. This way:

    * You save time
    * You use consistent test scenarios
    * You can manage your test scenarios centrally
  </Accordion>

  <Accordion title="What Happens When Check is Deleted?">
    When check is deleted:

    * Check definition is deleted from database
    * All test results are deleted
    * Scheduled jobs are cancelled
    * Historical data is permanently lost

    <Warning>
      Deletion cannot be undone!
    </Warning>
  </Accordion>

  <Accordion title="How Long Are Results Kept?">
    Results are kept until manually deleted. To clean old results:

    * You can use the "Delete All Results" button on the results page
    * Or you can clean results regularly
  </Accordion>

  <Accordion title="Can I Use Multiple Assertions?">
    Yes, you can use multiple assertions. All active assertions must be successful. For example:

    * Status Code: 200 ✅
    * "success" text in Body ✅
    * JSONPath: `$.status` = "ok" ✅

    If all are successful, test is considered successful.
  </Accordion>

  <Accordion title="Can I Use Dynamic Parameters in URL?">
    No, dynamic parameters cannot be used in URL. However:

    * You can add query parameters
    * You can use dynamic values in headers (in some cases)
    * You can use dynamic content in body
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Check Not Working">
    **Possible Causes:**

    1. Check may be in passive status → Check status toggle
    2. Scheduling settings may be wrong → Check cron expression
    3. URL may not be accessible → Test URL manually

    **Solution:**

    * Activate check status
    * Check scheduling settings
    * Make sure URL is accessible
  </Accordion>

  <Accordion title="All Tests Failing">
    **Possible Causes:**

    1. URL is wrong or not accessible
    2. Assertion settings are too strict
    3. Timeout duration is too short
    4. Authentication issues

    **Solution:**

    * Check URL
    * Review assertion settings
    * Increase timeout duration
    * Check authentication information in headers
  </Accordion>

  <Accordion title="Notifications Not Coming">
    **Possible Causes:**

    1. Notification is in passive status
    2. Notification configuration is incorrect
    3. Email/SMS service is not working

    **Solution:**

    * Activate notification status
    * Check notification configuration
    * Check Email/SMS service settings
  </Accordion>

  <Accordion title="Response Times Too High">
    **Possible Causes:**

    1. API performance issues
    2. Network delays
    3. Server load

    **Solution:**

    * Optimize API performance
    * Check network connection
    * Check server resources
  </Accordion>

  <Accordion title="Results Not Showing">
    **Possible Causes:**

    1. Check has not run yet
    2. Date range filter is wrong
    3. Results may have been deleted

    **Solution:**

    * Make sure check has run
    * Check date range filter
    * Make sure results have not been deleted
  </Accordion>
</AccordionGroup>

## Additional Resources

<CardGroup cols={2}>
  <Card title="Test Console Usage Guide" icon="code" href="/en/develop/test-debug-tools/test-console">
    Creating test scenarios
  </Card>

  <Card title="Connectors" icon="bell" href="/en/integrations/connectors/overview">
    Notification and action configuration
  </Card>

  <Card title="Scheduled Jobs" icon="clock" href="/en/admin/scheduled-jobs">
    Scheduling settings and cron expression
  </Card>

  <Card title="API Documentation" icon="book" href="/api-reference/overview">
    REST API usage
  </Card>
</CardGroup>
