Diligent Monitorings API
Website monitoring and alerts for changes and risks
Website monitoring and alerts for changes and risks
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/diligent-monitorings-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.6.0
title: Diligent CDD Monitorings API
description: 'Download Postman collection [here](https://docs.godiligent.ai/files/postman_collection.json).
'
servers:
- url: https://api.godiligent.ai
description: Production
- url: https://api.sandbox.godiligent.ai
description: Sandbox
security:
- xApiKey: []
tags:
- name: Monitorings
description: Website monitoring and alerts for changes and risks
paths:
/monitoring-alerts:
get:
tags:
- Monitorings
summary: List monitoring alerts
description: Retrieve a paginated list of monitoring alerts for the authenticated customer. Supports filtering by seen/unseen status and execution time, and provides an unseen alert count.
parameters:
- name: page_size
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 10
description: Number of alerts per page (1-100, default 10)
- name: next_token
in: query
required: false
schema:
type: string
description: Pagination token for next page (Base64-encoded)
- name: only_unacknowledged
in: query
required: false
schema:
type: string
enum:
- 'true'
- 'false'
description: If 'true', returns only unacknowledged alerts
- name: acknowledged
in: query
required: false
schema:
type: string
enum:
- 'true'
- 'false'
description: If 'true', returns only acknowledged alerts
- name: execution_time_before
in: query
required: false
schema:
type: string
format: date-time
description: Only include alerts executed before this time (ISO8601)
- name: execution_time_after
in: query
required: false
schema:
type: string
format: date-time
description: Only include alerts executed after this time (ISO8601)
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MonitoringAlertsListResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'401':
description: Unauthorized
'500':
description: Internal Server Error
security:
- xApiKey: []
/monitoring-alerts/acknowledge:
post:
tags:
- Monitorings
summary: Acknowledge (mark as seen) monitoring alerts
description: Acknowledge (mark as seen) one or all monitoring alerts for the authenticated customer. Exactly one of alertId or all must be provided in the request body.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AcknowledgeAlertsRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AcknowledgeAlertsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'401':
description: Unauthorized
'404':
description: Alert not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
security:
- xApiKey: []
/monitorings:
post:
tags:
- Monitorings
summary: Create a new monitoring
description: Create a new monitoring for a customer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MonitoringRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Monitoring'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'401':
description: Unauthorized
'403':
description: Forbidden
'500':
description: Internal Server Error
security:
- xApiKey: []
get:
tags:
- Monitorings
summary: List monitorings
description: Get a list of monitorings for a customer
parameters:
- name: page_size
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 10
description: Number of items per page (1-100, default 10)
- name: sort_by
in: query
required: false
schema:
type: string
enum:
- last_execution
- next_run
- state
- website
default: last_execution
description: 'Field to sort by (default: last_execution)'
- name: sort_direction
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: desc
description: Sort order (asc or desc, default desc)
- name: next_token
in: query
required: false
schema:
type: string
description: Pagination token for next page
- name: state
in: query
required: false
schema:
type: string
description: Filter by running state
- name: website
in: query
required: false
schema:
type: string
description: Filter by specific website URL
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Monitoring'
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'500':
description: Internal Server Error
security:
- xApiKey: []
/monitorings/bulk-create:
post:
tags:
- Monitorings
summary: Bulk create monitorings
description: Create multiple monitorings in a single request. All websites must be unique and not already exist for the customer.
requestBody:
required: true
content:
application/json:
schema:
type: array
minItems: 1
maxItems: 200
items:
allOf:
- $ref: '#/components/schemas/MonitoringRequest'
- type: object
properties:
run_now:
type: boolean
description: If true, monitoring will be executed immediately after creation.
expires_at:
type: string
format: date-time
description: Optional expiration date for the monitoring.
responses:
'200':
description: Successful bulk creation
content:
application/json:
schema:
type: object
properties:
is_successful:
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/Monitoring'
'400':
description: Validation or duplicate error
content:
application/json:
schema:
type: object
properties:
error:
type: string
duplicates:
type: array
items:
type: object
properties:
website:
type: string
description: The duplicate website URL
index:
type: integer
description: The index position of the duplicate item in the request array
description: List of duplicate website objects with their positions in the request array
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
'500':
description: Internal server error
content:
application/json:
schema:
type: object
properties:
error:
type: string
security:
- xApiKey: []
/monitorings/{id}/deactivate:
delete:
tags:
- Monitorings
summary: Deactivate a monitoring
description: Deactivate a monitoring by ID
parameters:
- name: id
in: path
required: true
schema:
type: string
example: d6e3b214-30b1-4401-a1b8-a1bd3c6a84e4
responses:
'204':
description: No Content
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- xApiKey: []
components:
schemas:
ErrorResponse:
type: object
properties:
error:
type: string
description: Error message
Monitoring:
type: object
properties:
id:
type: string
format: uuid
description: Unique monitoring identifier
example: d6e3b214-30b1-4401-a1b8-a1bd3c6a84e4
website:
type: string
format: uri
description: The monitored website URL
example: https://example.com
customer_id:
type: string
description: Customer identifier
checks:
type: array
items:
type: string
enum:
- non_operational_website
- high_risk_diligent_classification
- catalog_contain_loan_flipping_indicators
description: Active monitoring checks
frequency:
type: string
enum:
- weekly
- every_2_weeks
- every_3_weeks
- every_4_weeks
description: Monitoring frequency
is_active:
type: boolean
description: Whether monitoring is active
running_state:
type: string
enum:
- IDLE
- RUNNING
- FAILED
description: Current execution state
next_run_at:
type: string
format: date-time
description: Next scheduled execution time
expires_at:
type: string
format: date-time
description: Monitoring expiration date
last_execution:
type:
- string
- 'null'
format: date-time
description: Timestamp of last execution, null if never executed
created_at:
type: string
format: date-time
description: Creation timestamp
updated_at:
type: string
format: date-time
description: Last update timestamp
execution_results:
type: array
items:
type: object
description: Results from the latest monitoring execution
external_id:
type: string
description: External identifier for this monitoring
MonitoringAlert:
type: object
properties:
id:
type: string
description: Unique alert identifier
example: a1b2c3d4
monitoring_id:
type: string
format: uuid
description: Monitoring ID
example: d6e3b214-30b1-4401-a1b8-a1bd3c6a84e4
customer_id:
type: string
format: uuid
description: Customer ID
example: d6e3b214-30b1-4401-a1b8-a1bd3c6a84e4
execution_result_id:
type: string
format: uuid
description: Execution result ID
example: d6e3b214-30b1-4401-a1b8-a1bd3c6a84e4
website:
type: string
format: uri
description: Website URL
example: https://example.com
failed_checks:
type: array
items:
type: object
properties:
check:
type: string
description: Check type
example: non_operational_website
explanation:
type: string
description: Explanation of the failed check
example: Website is not reachable
method_used:
type: string
description: Method used to perform the check
example: AI
status:
type: string
description: Status of the check
example: FAILED
description: Failed checks
example:
- check: non_operational_website
explanation: No Website Data found
method_used: ''
status: FAILED
execution_time:
type: string
description: Execution time of the monitoring
example: '2022-01-01T00:00:00.000Z'
created_at:
type: string
description: Creation time of the alert
example: '2022-01-01T00:00:00.000Z'
acknowledged_at:
type:
- string
- 'null'
description: Acknowledged time of the alert or null if not acknowledged
example: '2025-08-01T06:12:47.905Z'
external_id:
type:
- string
- 'null'
description: External reference ID or null if not set
example: '123456'
MonitoringRequest:
type: object
required:
- website
- checks
- frequency
properties:
website:
type: string
format: uri
description: The website URL to monitor
example: https://example.com
checks:
type: array
minItems: 1
uniqueItems: true
items:
type: string
enum:
- non_operational_website
- high_risk_mcc
- high_risk_diligent_classification
- catalog_contain_loan_flipping_indicators
description: Array of monitoring checks to perform
example:
- non_operational_website
- high_risk_diligent_classification
frequency:
type: string
enum:
- weekly
- every_2_weeks
- every_3_weeks
- every_4_weeks
default: every_2_weeks
description: How often to run the monitoring checks
example: weekly
run_now:
type: boolean
default: true
description: Whether to execute the monitoring immediately after creation
expires_at:
type: string
format: date-time
description: Optional expiration date for the monitoring (defaults to 6 months from creation)
example: '2024-12-31T23:59:59.000Z'
skip_duplicate:
type: boolean
description: If an existing, active monitoring exist with the same site skip don't fail
example: false
ValidationError:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ValidationErrorItem'
required:
- errors
ValidationErrorItem:
type: object
properties:
path:
type: array
items:
type: string
description: JSON path to the field with the error
message:
type: string
description: Error message
code:
type: string
description: Error code indicating the type of error
required:
- path
- message
- code
AcknowledgeAlertsResponse:
type: object
properties:
success:
type: boolean
description: Whether the operation succeeded
message:
type: string
description: Success message
unacknowledged_count:
type:
- integer
- 'null'
description: Number of unacknowledged alerts remaining
MonitoringAlertsListResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/MonitoringAlert'
unacknowledged_count:
type: integer
description: Number of unacknowledged alerts
example: 1
next_token:
type: string
description: Pagination token for next page (null if last page)
example: eyJjdXN0b21lcklkIjp7IlMiOiI2OWRmNWQ4MS0yYjc0LTRmNDItYTQwMS0xM2ViOTZiYTA2MTkifSwiZXhlY3V0aW9uVGltZSI6eyJTIjoiMjAyNS0wNy0zMVQxMjowMTozMC44OTFaIn19
AcknowledgeAlertsRequest:
type: object
properties:
alert_id:
type: string
description: ID of the alert to acknowledge
all:
type: boolean
description: If true, acknowledge all alerts
oneOf:
- required:
- alert_id
- required:
- all
description: Either alert_id OR all must be provided, but not both
securitySchemes:
xApiKey:
type: apiKey
name: X-API-KEY
in: header