{
  "openapi": "3.0.4",
  "info": {
    "title": "Signicat Organisation Monitoring API",
    "description": "\n- **Base URL**: `https://api.signicat.com/info/monitor/`\n- **Documentation**: See the [Ongoing Monitoring](/docs/ongoing-monitoring/) developer documentation.\n- **Support**: [Create a support ticket](https://dashboard.signicat.com/contact-us/tickets/) in the Signicat Dashboard.\n\n# Introduction\n\nThe Signicat Organisation Monitoring API enables monitoring of organisation data changes through multiple national organisation registries.\n\nThis API is part of the Signicat Ongoing Monitoring service that enables continuous tracking of entities (persons or organisations) for any changes in their demographic, financial or screening profiles.\n\nThis REST API uses the OAuth 2.0 protocol for authorisation. All request and response bodies are formatted in JSON.\n\n# Get started\n\nBefore you can start making requests to this API, you need to learn how to connect to it. To do this, see the **Connect to Signicat APIs** [Quick start guide](/docs/connect-to-signicat-apis/quick-start-guide/).\n\nRequired API client permissions:\n\n- **Info Monitor Admin**\n- **Info Monitor Editor**\n- **Info Monitor Viewer**\n\n## Audit logs\n\nUse the Signicat **Audit logs** service to see documented evidence of the sequence of activities that have affected a system.\n\n- Access it: **Signicat Dashboard** > **Settings** > [**Audit logs**](https://dashboard.signicat.com/audit)\n- For information generic to all Signicat audit logs, see the general [Audit logs](/docs/audit-logs/) documentation.\n\n## Errors\n\nWhen you make an API call to Signicat and an error occurs, you will receive a response message with an error code.\n\n- For errors generic to all Signicat APIs, see the general [Error codes](/docs/error-codes/) documentation.\n- For errors specific to this service, see the Ongoing Monitoring [Error codes](/docs/ongoing-monitoring/error-codes/) documentation.\n\n## Events (callback)\n\nUse the Signicat **Events** service to automatically receive information about when something happens in one of our services into your system.\n\n- Access it: Go to **Signicat Dashboard** > **Settings** > [**Events**](https://dashboard.signicat.com/events)\n- For information generic to all Signicat events, see the general [Events](/docs/events/) documentation.\n\n> **Note**: This is often referred to as callback.\n",
    "contact": "",
    "version": "",
    "x-meta": "Custom metadata",
    "license": "",
    "termsOfService": ""
  },
  "paths": {
    "/info/monitor/{monitorId}": {
      "get": {
        "tags": [
          "Monitor Endpoints"
        ],
        "summary": "Get monitor",
        "description": "This endpoint allows to get monitor by Id from the system.",
        "parameters": [
          {
            "name": "monitorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorDto"
                },
                "example": {
                  "id": "402d1ce2-ce71-4f9b-b252-3fa90fef0de4",
                  "accountId": "a-ppge-c5jsmhR5fLM3jxBY8H1v",
                  "name": "Monitor Name",
                  "sources": [
                    {
                      "name": "trapets"
                    }
                  ],
                  "profiles": [
                    "screening"
                  ],
                  "description": "Monitor that reach source",
                  "size": 10,
                  "entityType": "Organisation",
                  "createdAt": "2025-09-11T11:27:11.3126593Z",
                  "isEnabled": true
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/info/monitor": {
      "post": {
        "tags": [
          "Monitor Endpoints"
        ],
        "summary": "Create monitor",
        "description": "This endpoint allows the creation of a new monitor resource in the system.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMonitorRequestDto"
              },
              "example": {
                "name": "Monitor Name",
                "description": "Monitor that reach source",
                "entityType": "Organisation",
                "sources": [
                  {
                    "name": "trapets"
                  }
                ],
                "profiles": [
                  "screening"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/info/monitor/{monitorId}/organisations": {
      "post": {
        "tags": [
          "Organisation Endpoints"
        ],
        "summary": "Add organisation",
        "description": "This endpoint allows the creation of a new organisation to monitor in the system.",
        "parameters": [
          {
            "name": "monitorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OrganisationRequestDto"
                }
              },
              "example": [
                {
                  "organisationNumber": "23432342",
                  "source": "Trapets",
                  "country": "NOR",
                  "companyName": "Signicat",
                  "referenceKey": "402d1ce2-ce71-4f9b-b252-3fa90fef0de4",
                  "externalId": null
                }
              ]
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/info/monitor/{monitorId}/organisations/{referenceKey}": {
      "get": {
        "tags": [
          "Organisation Endpoints"
        ],
        "summary": "Get organisation",
        "description": "This endpoint allows to get the organisation last snapshot by monitor id and reference key from the system.",
        "parameters": [
          {
            "name": "monitorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "referenceKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDataDto"
                },
                "example": {
                  "country": "NOR",
                  "name": "Organisation Name",
                  "added": "2025-09-10T11:27:11.316009Z",
                  "lastUpdate": "2025-09-11T11:27:11.3160111Z",
                  "organisationNumber": "12345678",
                  "operationalStatus": null,
                  "externalId": "1454-15",
                  "alias": "Organisation Alias",
                  "legalForm": "Other",
                  "screening": {
                    "matchStrength": 100,
                    "listType": "SANCTION",
                    "source": "EU_GLOBAL"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "Organisation Endpoints"
        ],
        "summary": "Delete organisation associated to a monitor",
        "description": "This endpoint allows to delete the organisation from the system in one specific monitor.",
        "parameters": [
          {
            "name": "monitorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "referenceKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/info/monitor/{monitorId}/organisations/{referenceKey}/changes": {
      "get": {
        "tags": [
          "Organisation Endpoints"
        ],
        "summary": "Get organisation changes by monitor and reference key",
        "description": "This endpoint allows to get the organisation all changes by monitor id and reference key from the system.",
        "parameters": [
          {
            "name": "monitorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "referenceKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationChangesDtoPagedCollection"
                },
                "example": {
                  "size": 3,
                  "nextCursor": 2,
                  "limit": 1000,
                  "items": [
                    {
                      "id": 1,
                      "referenceKey": "402d1ce2-ce71-4f9b-b252-3fa90fef0de4",
                      "monitorId": "bc8b6383-ed53-4ffe-a847-2e0072f5a23d",
                      "detected": "2025-09-11T11:27:11.317656Z",
                      "created": "2025-09-10T17:27:11.3176563Z",
                      "changes": [
                        {
                          "profile": "screening",
                          "attribute": "CompanyName",
                          "action": "Update",
                          "new": "New Name",
                          "old": "Previous Name"
                        },
                        {
                          "profile": "screening",
                          "attribute": "MatchStrength",
                          "action": "Update",
                          "new": "100",
                          "old": "60"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/info/monitor/{monitorId}/organisations/changes": {
      "get": {
        "tags": [
          "Organisation Endpoints"
        ],
        "summary": "Get organisation changes from monitor",
        "description": "This endpoint allows to get the organisation all changes by monitor id from the system.",
        "parameters": [
          {
            "name": "monitorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationChangesDtoPagedCollection"
                },
                "example": {
                  "size": 3,
                  "nextCursor": 2,
                  "limit": 1000,
                  "items": [
                    {
                      "id": 1,
                      "referenceKey": "402d1ce2-ce71-4f9b-b252-3fa90fef0de4",
                      "monitorId": "8a1d17e9-626d-44b0-9eaa-0935bf2c8fe1",
                      "detected": "2025-09-11T11:27:11.3183971Z",
                      "created": "2025-09-10T17:27:11.3183975Z",
                      "changes": [
                        {
                          "profile": "screening",
                          "attribute": "CompanyName",
                          "action": "Update",
                          "new": "New Name",
                          "old": "Previous Name"
                        },
                        {
                          "profile": "screening",
                          "attribute": "MatchStrength",
                          "action": "Update",
                          "new": "100",
                          "old": "60"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ChangesDto": {
        "required": [
          "attribute",
          "profile"
        ],
        "type": "object",
        "properties": {
          "profile": {
            "type": "string",
            "nullable": true
          },
          "attribute": {
            "type": "string",
            "nullable": true
          },
          "action": {
            "type": "string",
            "nullable": true
          },
          "new": {
            "nullable": true
          },
          "old": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateMonitorRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "entityType": {
            "type": "string",
            "nullable": true
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourcesDto"
            },
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MonitorDto": {
        "required": [
          "entityType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourcesDto"
            },
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "entityType": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OrganisationChangesDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "referenceKey": {
            "type": "string",
            "nullable": true
          },
          "monitorId": {
            "type": "string",
            "format": "uuid"
          },
          "detected": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChangesDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganisationChangesDtoPagedCollection": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "nextCursor": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganisationChangesDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganisationDataDto": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "added": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organisationNumber": {
            "type": "string",
            "nullable": true
          },
          "operationalStatus": {
            "type": "string",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "alias": {
            "type": "string",
            "nullable": true
          },
          "legalForm": {
            "type": "string",
            "nullable": true
          },
          "screening": {
            "$ref": "#/components/schemas/RiskScreening"
          }
        },
        "additionalProperties": false
      },
      "OrganisationRequestDto": {
        "required": [
          "organisationNumber"
        ],
        "type": "object",
        "properties": {
          "organisationNumber": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "referenceKey": {
            "type": "string",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RiskScreening": {
        "type": "object",
        "properties": {
          "matchStrength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "listType": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SourcesDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}