Skip to main content
POST
Bulk create monitorings

Overview

The bulk create monitorings endpoint allows you to create multiple monitoring configurations in a single API call. This endpoint is useful for onboarding multiple websites or setting up monitoring for a large portfolio efficiently.

Key Features

  • Batch Processing: Create up to 200 monitorings in one request
  • Duplicate Detection: Duplicate websites within the same request will be rejected with an error (all or nothing rule applies, unless skip_duplicate flag is set to true)
  • Existing Monitoring Check: If any monitoring already exists for a website for this customer, the entire request is rejected with a list of duplicates
  • Immediate Execution: Option to run monitoring checks immediately after creation (run_now flag)
  • Flexible Scheduling: Configure custom frequencies and expiration dates
  • Atomic Operation: If there are any validation or duplicate errors, no monitorings are created. (This is disabled if skip_duplicate flag is set to true)
  • URL Security: All website URLs are validated and sanitized for security

Request

  • Method: POST
  • Path: /monitorings/bulk-create
  • Body: JSON array of monitoring objects (minimum 1, maximum 200)
Each object must include:
  • website (string, required, unique in array) - The URL to monitor (will be validated and sanitized)
  • checks (array, required) - Array of monitoring checks to perform:
    • "non_operational_website" - Check if website is operational
    • "high_risk_diligent_classification" - Check for high-risk classification
    • "catalog_contain_loan_flipping_indicators" - Check for loan flipping indicators
  • frequency (string, required, case-insensitive) - How often to run checks:
    • "weekly" - Every 7 days
    • "every_2_weeks" - Every 14 days (default)
    • "every_3_weeks" - Every 21 days
    • "every_4_weeks" - Every 28 days
  • expires_at (ISO8601 string, optional) - When monitoring expires (defaults to 6 months from creation)
    • Must be a future date
    • Must be at least N days ahead where N equals the frequency period (e.g., weekly requires at least 7 days ahead)
  • run_now (boolean, optional) - Execute immediately after creation (defaults to true)
  • external_id (string, optional) - External ID for the monitoring
  • skip_duplicate (boolean, optional) - If any of the monitorings in the request has this flag set to true, and If an existing, active monitoring exist with the same site skip don’t fail.

Example Request

Success Response

  • Status: 200 OK

Error Handling

  • 400 Bad Request
    • Invalid JSON body, schema validation errors, duplicate websites in request, or monitorings already exist for one or more websites for this customer.
    • Invalid JSON:
    • Validation errors:
    • Duplicate websites in request:
    • Existing monitorings:
  • 401 Unauthorized
    • Missing or invalid customer authentication.
    • Example:
  • 500 Internal Server Error
    • Unexpected server error during creation or SQS publishing.
    • Example:

Validation Rules

  • Website URLs: All URLs are validated and sanitized for security. Invalid or disallowed URLs will be rejected.
  • Unique Checks: Each monitoring must have unique check names (no duplicates within the same monitoring).
  • Frequency: Case-insensitive input (e.g., “WEEKLY” becomes “weekly”). Must be one of the supported frequencies.
  • Expiration Date:
    • Must be a valid ISO8601 date string
    • Must be a future date
    • Must be at least N days ahead based on frequency (weekly=7 days, every_2_weeks=14 days, etc.)
    • Defaults to 6 months from creation if not provided
  • Array Limits: Minimum 1 monitoring, maximum 200 monitorings per request
  • Duplicate Detection:
    • No duplicate websites allowed within the same request or existing for the customer
    • If any of the monitorings in the request has skip_duplicate flag set to true, and if an existing, active monitoring exist with the same site skip don’t fail

Notes

  • All monitorings must have unique websites in the request and not already exist for the customer.
  • If run_now is set to true, the monitoring will be queued for immediate execution after creation.
  • Frequency input is case-insensitive and will be normalized to lowercase.
  • The system processes monitorings in batches for SQS publishing (batch size: 10).

Authorizations

X-API-KEY
string
header
required

Body

application/json
Required array length: 1 - 200 elements
website
string<uri>
required

The website URL to monitor

Example:

"https://example.com"

checks
enum<string>[]
required

Array of monitoring checks to perform

Minimum array length: 1
Available options:
non_operational_website,
high_risk_mcc,
high_risk_diligent_classification,
catalog_contain_loan_flipping_indicators
Example:
frequency
enum<string>
default:every_2_weeks
required

How often to run the monitoring checks

Available options:
weekly,
every_2_weeks,
every_3_weeks,
every_4_weeks
Example:

"weekly"

run_now
boolean
default:true

If true, monitoring will be executed immediately after creation.

expires_at
string<date-time>

Optional expiration date for the monitoring.

Example:

"2024-12-31T23:59:59.000Z"

skip_duplicate
boolean

If an existing, active monitoring exist with the same site skip don't fail

Example:

false

Response

Successful bulk creation

is_successful
boolean
items
object[]