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)
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 monitoringskip_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
Body
application/json · object[]
The website URL to monitor
Example:
"https://example.com"
Array of monitoring checks to perform
Minimum length:
1
Example:
[
"non_operational_website",
"high_risk_diligent_classification"
]
How often to run the monitoring checks
Available options:
weekly
, every_2_weeks
, every_3_weeks
, every_4_weeks
Example:
"weekly"
Whether to execute the monitoring immediately after creation If true, monitoring will be executed immediately after creation.
Optional expiration date for the monitoring (defaults to 6 months from creation) Optional expiration date for the monitoring.
Example:
"2024-12-31T23:59:59.000Z"
If an existing, active monitoring exist with the same site skip don't fail
Example:
false