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

# Get Alert

> Retrieve a name screening alert with enriched evidence and supporting facts

## Behavior

* Returns a fully enriched alert including all hits, evidences, and supporting facts
* Each evidence contains `supporting_facts` — the specific facts that contributed to the resolution decision
* `UNREMEDIATED` alerts return `404` to prevent exposure of unprocessed data
* The alert must belong to the authenticated customer

## Response Shape

The response includes `profile_facts` at the alert level — facts about the screened subject.

Each hit contains `evidences`, which are categorized as `PRIMARY_NAME` or grouped by evidence category (e.g. `DOB`, `LOCATION`). Each evidence contains:

* **`categories`** — the signal types (e.g. `NAME_GIVEN_NAME_EXACT_MATCH`, `DOB_YEAR_MISMATCH`)
* **`supporting_facts`** — the facts that drove the evidence, each with:
  * **`predicate`** — e.g. `has_name`, `date_of_birth`
  * **`value`** — the extracted value
  * **`citations`** — array with one citation indicating the data source (`HIT`, `PROFILE`, `ARTICLE`, `REGISTRY`, or `WEB_SEARCH`) and optionally a `url`


## OpenAPI

````yaml GET /v1/name-screenings/alerts/{id}
openapi: 3.0.1
info:
  version: 1.5.0
  title: Diligent
  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: CDD
    description: Customer Due Diligence
  - name: Company
    description: Company Information
  - name: Blocked Companies
    description: Manage blocked companies
  - name: Monitorings
    description: Website monitoring and alerts for changes and risks
  - name: Webhooks
    description: >

      ## How to Secure Webhook Deliveries

      To ensure that webhook payloads are securely transmitted and verified.
      This guide explains how to configure and validate

      webhook deliveries using a shared secret.


      ### How It Works


      When setting up a webhook, a secret is configured on both the sender (our
      system) and the receiver (your endpoint). Each

      webhook payload is signed using this secret, allowing the receiver to
      verify its authenticity.


      #### Step 1: Configuring Your Webhook Secret


      1. When creating a webhook in our system, specify a unique secret key.
      This secret should be a strong, randomly

      generated string.

      2. Store this secret securely on your server; it should never be exposed
      publicly.


      #### Step 2: Receiving Webhook Payloads


      When your server receives a webhook event, the request will include an
      `X-Signature` header containing a HMAC signature

      of the payload.


      Example header:


      ```

      X-Signature: sha256=abcdef1234567890...

      ```


      #### Step 3: Validating the Webhook Signature


      To verify the webhook payload:


      1. Retrieve the `X-Signature` value from the request headers.

      2. Compute the HMAC SHA-256 signature of the request payload using your
      webhook secret.

      3. Compare the computed signature with the one in the `X-Signature`
      header.

      4. If they match, the webhook is valid.


      #### (Python)


      ```python

      import hashlib

      import hmac

      import json


      def verify_webhook_signature(secret, payload, signature):
        computed_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
        expected_signature = f"sha256={computed_signature}"
        return hmac.compare_digest(expected_signature, signature)

      # Example usage:

      secret = "your_webhook_secret"

      payload = json.dumps({"event": "example"})

      received_signature = "sha256=abcdef1234567890..."


      if verify_webhook_signature(secret, payload, received_signature):
        print("Valid webhook received!")
      else:
        print("Invalid webhook signature!")
      ```


      #### (JavaScript)


      ```javascript

      const crypto = require('crypto');


      function verifyWebhookSignature (secret, payload, signature) {

      const computedSignature = `sha256=${crypto.createHmac('sha256', secret)

      .update(payload)

      .digest('hex')}`;

      return crypto.timingSafeEqual(Buffer.from(computedSignature),
      Buffer.from(signature));

      }


      // Example usage:

      const secret = "your_webhook_secret";

      const payload = JSON.stringify({ event: "example" });

      const receivedSignature = "sha256=abcdef1234567890...";


      if (verifyWebhookSignature(secret, payload, receivedSignature)) {

      console.log("Valid webhook received!");

      } else {

      console.log("Invalid webhook signature!");

      }

      ```


      #### Security Considerations


      - Always use HTTPS to prevent interception of webhook payloads.

      - Reject webhook requests that fail signature validation.

      - Rotate secrets periodically to enhance security.


      By following this guide, you ensure that webhook deliveries are secure and
      trusted.
  - name: Instant Screening (experimental)
    description: Instant Website Screening API
  - name: Name Screening
    description: Name screening search, alert management and remediation
paths:
  /v1/name-screenings/alerts/{id}:
    get:
      tags:
        - Name Screening
      summary: Get alert by ID
      description: >-
        Retrieve a name screening alert with enriched evidence and supporting
        facts. Returns 404 for unremediated alerts.
      parameters:
        - name: id
          in: path
          required: true
          description: Alert ID or reference
          schema:
            type: string
            example: 714808a0-faf0-4e0f-a3a3-fbe490a10efd
      responses:
        '200':
          description: Alert retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alert'
        '400':
          description: Bad Request - Missing id parameter
        '401':
          description: Unauthorized - Invalid or missing API key
        '404':
          description: Alert not found or unremediated
        '500':
          description: Internal Server Error
      security:
        - xApiKey: []
components:
  schemas:
    Alert:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Alert unique identifier
          example: 714808a0-faf0-4e0f-a3a3-fbe490a10efd
        reference:
          type: string
          description: Alert reference from the provider
          example: 5jb7h9b1kiu51kbwyrjhog350
        alt_reference:
          type: string
          nullable: true
          description: Alternate reference identifier
          example: ABIGASQLIM3WR
        status:
          type: string
          description: Alert status
          example: COMPLETED
        remediation_status:
          type: string
          enum:
            - REMEDIATED
            - UNREMEDIATED
          description: Whether all hits have been resolved
          example: REMEDIATED
        profile_facts:
          type: array
          description: Facts about the screened profile (subject of the alert)
          items:
            $ref: '#/components/schemas/Fact'
        hits:
          type: array
          description: List of enriched hits
          items:
            $ref: '#/components/schemas/AlertHit'
        created_at:
          type: string
          format: date-time
          example: '2024-01-15T09:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2024-01-15T10:30:00Z'
      required:
        - id
        - reference
        - status
        - remediation_status
        - hits
        - created_at
        - updated_at
    Fact:
      type: object
      description: A single fact that contributed to the evidence decision
      properties:
        predicate:
          type: string
          description: The attribute being described
          example: date_of_birth
        value:
          type: string
          description: The extracted value
          example: '1974'
        citations:
          type: array
          minItems: 1
          maxItems: 1
          description: Single-element array with the data source for this fact
          items:
            $ref: '#/components/schemas/Citation'
      required:
        - predicate
        - value
        - citations
    AlertHit:
      type: object
      properties:
        reference:
          type: string
          description: Hit reference identifier
          example: 5jb766qtsj0e1kbwyrlh03gpe
        hit_categories:
          type: array
          description: Categories for this hit
          items:
            type: string
            enum:
              - SANCTION
              - PEP
              - MEDIA
          example:
            - MEDIA
        evidences:
          type: array
          description: Categorized evidence blocks with supporting facts
          items:
            $ref: '#/components/schemas/Evidence'
        resolution:
          $ref: '#/components/schemas/HitResolution'
      required:
        - reference
        - hit_categories
    Citation:
      type: object
      properties:
        name:
          type: string
          enum:
            - HIT
            - PROFILE
            - ARTICLE
            - REGISTRY
            - WEB_SEARCH
          description: >-
            Data source for this fact. HIT = provider data, PROFILE = screening
            subject, ARTICLE = enrichment source, REGISTRY = company registry,
            WEB_SEARCH = web search result.
          example: ARTICLE
        url:
          type: string
          nullable: true
          description: URL of the source article, if available
          example: https://example.com/article
      required:
        - name
        - url
    Evidence:
      type: object
      properties:
        type:
          type: string
          enum:
            - PRIMARY_NAME
            - NAME_MATCH
            - NAME_CONFLICT
            - NAME_FLAG
            - DOB
            - INCORPORATION
            - LOCATION
            - INDUSTRY
            - IDENTIFIER
            - LIFE_STATUS
            - TEMPORAL
            - GENDER
            - ENTITY_TYPE
          description: >-
            Category of evidence. PRIMARY_NAME and OTHER_NAME are name evidence
            blocks; all others are grouped by evidence category.
          example: DOB
        categories:
          type: array
          description: Signal types that describe this evidence
          items:
            type: string
          example:
            - DOB_AMBIGUOUS
            - DOB_YEAR_MISMATCH
        supporting_facts:
          type: array
          description: The specific facts that contributed to this evidence decision
          items:
            $ref: '#/components/schemas/Fact'
      required:
        - type
        - categories
        - supporting_facts
    HitResolution:
      type: object
      properties:
        status:
          type: string
          description: Resolution status
          example: NOTHING
        summary:
          type: string
          nullable: true
          description: Human-readable resolution summary
          example: DOB mismatch - different person
        author:
          type: string
          description: Who determined the resolution
          example: DILIGENT
        action:
          type: string
          description: Internal action taken
          example: COMMENT_FALSE_POSITIVE
        determination:
          type: string
          enum:
            - FALSE_POSITIVE
            - TRUE_POSITIVE
            - UNRESOLVED
          description: Resolution determination
          example: FALSE_POSITIVE
        applied_rule:
          type: object
          nullable: true
          description: The automated rule that triggered this resolution, if any
          properties:
            name:
              type: string
              example: Date of Birth Mismatch
  securitySchemes:
    xApiKey:
      type: apiKey
      name: X-API-KEY
      in: header

````