Nightfall AI Scans API

The Scans API from Nightfall AI — 1 operation(s) for scans.

OpenAPI Specification

nightfall-ai-scans-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: One unified platform for protecting sensitive data across SaaS, GenAI, email, and endpoints.
  title: Nightfall AI Scan Scans API
  version: 0.0.1
servers:
- url: https://api.nightfall.ai/
security:
- apiKeyAuth: []
tags:
- name: Scans
paths:
  /v2/scan:
    post:
      description: Provide a list of arbitrary string data, and scan each item with the provided detectors to uncover sensitive information. Returns a list equal in size to the number of provided string payloads. The item at each list index will be a list of all matches for the provided detectors, or an empty list if no occurrences are found.
      operationId: ScanPayloadV2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScanRequestV2'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanResponseV2Array'
          description: Successful operation
          headers:
            Content-Type:
              description: the content type of the response
              explode: false
              schema:
                type: string
              style: simple
      security:
      - apiKeyAuth: []
      summary: Nightfall AI Scan for sensitive information in your data
      tags:
      - Scans
      x-amazon-apigateway-integration:
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Content-Type: '''application/json'''
        uri: arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:679663525012:function:api_platform_lambda/invocations
        passthroughBehavior: when_no_match
        httpMethod: POST
        type: aws_proxy
      x-codegen-request-body-name: ScanReqV2
components:
  schemas:
    ScanRequestV2:
      description: The request body of the /v2/scan endpoint
      example:
        payload:
        - payload
        - payload
        config:
          conditionSet:
            logicalOp: logicalOp
            conditions:
            - minNumFindings: 0
              detector:
                regex:
                  isCaseSensitive: true
                  pattern: pattern
                contextRules:
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  proximity:
                    windowAfter: 1
                    windowBefore: 6
                  confidenceAdjustment: {}
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  proximity:
                    windowAfter: 1
                    windowBefore: 6
                  confidenceAdjustment: {}
                wordList:
                  isCaseSensitive: true
                  values:
                  - values
                  - values
                displayName: displayName
                exclusionRules:
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  wordList:
                    isCaseSensitive: true
                    values:
                    - values
                    - values
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  wordList:
                    isCaseSensitive: true
                    values:
                    - values
                    - values
            - minNumFindings: 0
              detector:
                regex:
                  isCaseSensitive: true
                  pattern: pattern
                contextRules:
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  proximity:
                    windowAfter: 1
                    windowBefore: 6
                  confidenceAdjustment: {}
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  proximity:
                    windowAfter: 1
                    windowBefore: 6
                  confidenceAdjustment: {}
                wordList:
                  isCaseSensitive: true
                  values:
                  - values
                  - values
                displayName: displayName
                exclusionRules:
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  wordList:
                    isCaseSensitive: true
                    values:
                    - values
                    - values
                - regex:
                    isCaseSensitive: true
                    pattern: pattern
                  wordList:
                    isCaseSensitive: true
                    values:
                    - values
                    - values
          conditionSetUUID: conditionSetUUID
      properties:
        config:
          $ref: '#/components/schemas/ScanRequestV2_config'
        payload:
          description: The text sample(s) you wish to scan. This data is passed as a string list, so you may choose to segment your text into multiple items for better granularity. The aggregate size of your text (summed across all items in the list) must not exceed 500 KB for any individual request, and the number of items in that list may not exceed 50,000.
          items:
            description: A collection of strings to scan.
            type: string
          type: array
      type: object
    Detector:
      example:
        regex:
          isCaseSensitive: true
          pattern: pattern
        contextRules:
        - regex:
            isCaseSensitive: true
            pattern: pattern
          proximity:
            windowAfter: 1
            windowBefore: 6
          confidenceAdjustment: {}
        - regex:
            isCaseSensitive: true
            pattern: pattern
          proximity:
            windowAfter: 1
            windowBefore: 6
          confidenceAdjustment: {}
        wordList:
          isCaseSensitive: true
          values:
          - values
          - values
        displayName: displayName
        exclusionRules:
        - regex:
            isCaseSensitive: true
            pattern: pattern
          wordList:
            isCaseSensitive: true
            values:
            - values
            - values
        - regex:
            isCaseSensitive: true
            pattern: pattern
          wordList:
            isCaseSensitive: true
            values:
            - values
            - values
      properties:
        displayName:
          description: The display name for this detector's findings in the response.
          type: string
        detectorType:
          $ref: '#/components/schemas/DetectorType'
        nightfallDetector:
          $ref: '#/components/schemas/NightfallDetectorType'
        regex:
          $ref: '#/components/schemas/Regex'
        wordList:
          $ref: '#/components/schemas/WordList'
        contextRules:
          description: A list of context rules.
          items:
            $ref: '#/components/schemas/ContextRule'
          type: array
        exclusionRules:
          description: A list of exclusion rules.
          items:
            $ref: '#/components/schemas/ExclusionRule'
          type: array
      type: object
    ScanResponse_location_unicodeRange:
      properties:
        start:
          description: The index of the fragment's starting unicode character.
          type: integer
        end:
          description: The index of the fragment's ending unicode character.
          type: integer
      type: object
    ExclusionRule:
      description: An exclusion rule removes findings that match the rule's given exlusion.
      example:
        regex:
          isCaseSensitive: true
          pattern: pattern
        wordList:
          isCaseSensitive: true
          values:
          - values
          - values
      properties:
        matchType:
          $ref: '#/components/schemas/MatchType'
        exclusionType:
          $ref: '#/components/schemas/ExclusionType'
        regex:
          $ref: '#/components/schemas/Regex'
        wordList:
          $ref: '#/components/schemas/WordList'
      type: object
    ExclusionType:
      description: The type of exclusion rule.
      enum:
      - REGEX
      - WORD_LIST
      type: string
    WordList:
      description: The WordList object for wordList detector and exclusion rules.
      example:
        isCaseSensitive: true
        values:
        - values
        - values
      properties:
        values:
          description: A list of words for wordList.
          items:
            type: string
          type: array
        isCaseSensitive:
          description: The case sensitivity for words in the wordList. If false, ignore the case of findings.
          type: boolean
      type: object
    ScanRequestV2_config_conditionSet:
      description: A conditionSet contains a list of conditions with which you wish to scan the request payload.
      example:
        logicalOp: logicalOp
        conditions:
        - minNumFindings: 0
          detector:
            regex:
              isCaseSensitive: true
              pattern: pattern
            contextRules:
            - regex:
                isCaseSensitive: true
                pattern: pattern
              proximity:
                windowAfter: 1
                windowBefore: 6
              confidenceAdjustment: {}
            - regex:
                isCaseSensitive: true
                pattern: pattern
              proximity:
                windowAfter: 1
                windowBefore: 6
              confidenceAdjustment: {}
            wordList:
              isCaseSensitive: true
              values:
              - values
              - values
            displayName: displayName
            exclusionRules:
            - regex:
                isCaseSensitive: true
                pattern: pattern
              wordList:
                isCaseSensitive: true
                values:
                - values
                - values
            - regex:
                isCaseSensitive: true
                pattern: pattern
              wordList:
                isCaseSensitive: true
                values:
                - values
                - values
        - minNumFindings: 0
          detector:
            regex:
              isCaseSensitive: true
              pattern: pattern
            contextRules:
            - regex:
                isCaseSensitive: true
                pattern: pattern
              proximity:
                windowAfter: 1
                windowBefore: 6
              confidenceAdjustment: {}
            - regex:
                isCaseSensitive: true
                pattern: pattern
              proximity:
                windowAfter: 1
                windowBefore: 6
              confidenceAdjustment: {}
            wordList:
              isCaseSensitive: true
              values:
              - values
              - values
            displayName: displayName
            exclusionRules:
            - regex:
                isCaseSensitive: true
                pattern: pattern
              wordList:
                isCaseSensitive: true
                values:
                - values
                - values
            - regex:
                isCaseSensitive: true
                pattern: pattern
              wordList:
                isCaseSensitive: true
                values:
                - values
                - values
      properties:
        logicalOp:
          description: Evaluate whether the conditions satisfy ANY or ALL criteria. Empty value defaults to ANY.
          type: string
        conditions:
          description: A list of conditions.
          items:
            $ref: '#/components/schemas/Condition'
          type: array
      type: object
    ContextRule_confidenceAdjustment:
      description: The object containing the confidence level to adjust findings to.
      example: {}
      properties:
        fixedConfidence:
          $ref: '#/components/schemas/Confidence'
      type: object
    MatchType:
      description: The type of match for a pattern.
      enum:
      - PARTIAL
      - FULL
      type: string
    ScanRequestV2_config:
      description: Config can contain either a conditionSetUUID or a list of inline conditions to scan the request payload with.
      example:
        conditionSet:
          logicalOp: logicalOp
          conditions:
          - minNumFindings: 0
            detector:
              regex:
                isCaseSensitive: true
                pattern: pattern
              contextRules:
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                proximity:
                  windowAfter: 1
                  windowBefore: 6
                confidenceAdjustment: {}
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                proximity:
                  windowAfter: 1
                  windowBefore: 6
                confidenceAdjustment: {}
              wordList:
                isCaseSensitive: true
                values:
                - values
                - values
              displayName: displayName
              exclusionRules:
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                wordList:
                  isCaseSensitive: true
                  values:
                  - values
                  - values
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                wordList:
                  isCaseSensitive: true
                  values:
                  - values
                  - values
          - minNumFindings: 0
            detector:
              regex:
                isCaseSensitive: true
                pattern: pattern
              contextRules:
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                proximity:
                  windowAfter: 1
                  windowBefore: 6
                confidenceAdjustment: {}
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                proximity:
                  windowAfter: 1
                  windowBefore: 6
                confidenceAdjustment: {}
              wordList:
                isCaseSensitive: true
                values:
                - values
                - values
              displayName: displayName
              exclusionRules:
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                wordList:
                  isCaseSensitive: true
                  values:
                  - values
                  - values
              - regex:
                  isCaseSensitive: true
                  pattern: pattern
                wordList:
                  isCaseSensitive: true
                  values:
                  - values
                  - values
        conditionSetUUID: conditionSetUUID
      properties:
        conditionSetUUID:
          description: The UUID corresponding to the condition set with which you wish to scan the request payload.
          type: string
        conditionSet:
          $ref: '#/components/schemas/ScanRequestV2_config_conditionSet'
      type: object
    ContextRule:
      description: A context rule adjusts the finding confidence based on surrounding context.
      example:
        regex:
          isCaseSensitive: true
          pattern: pattern
        proximity:
          windowAfter: 1
          windowBefore: 6
        confidenceAdjustment: {}
      properties:
        regex:
          $ref: '#/components/schemas/Regex'
        proximity:
          $ref: '#/components/schemas/ContextRule_proximity'
        confidenceAdjustment:
          $ref: '#/components/schemas/ContextRule_confidenceAdjustment'
      type: object
    NightfallDetectorType:
      description: The name for a Nightfall detector.
      enum:
      - AMERICAN_BANKERS_CUSIP_ID
      - API_KEY
      - CANADA_BC_PHN
      - CANADA_BANK_ACCOUNT
      - CANADA_DRIVERS_LICENSE_NUMBER
      - CANADA_GOVERNMENT_ID
      - CANADA_OHIP
      - CANADA_PASSPORT
      - CANADA_PERMANENT_RESIDENT_NUMBER
      - CANADA_QUEBEC_HIN
      - CANADA_SOCIAL_INSURANCE_NUMBER
      - CREDIT_CARD_NUMBER
      - CRYPTOGRAPHIC_KEY
      - DATABASE_CONNECTION_STRING
      - DATE
      - DATE_OF_BIRTH
      - EMAIL_ADDRESS
      - FDA_NATIONAL_DRUG_NAME
      - FRANCE_CNI
      - FRANCE_INSEE
      - FRANCE_PASSPORT
      - GERMANY_IDENTITY_NUMBER
      - GERMANY_PASSPORT
      - GCP_CREDENTIALS
      - HIPAA_DEFINED_PII
      - IBAN_CODE
      - ICD10_CODE
      - ICD10_DIAGNOSIS_DESCRIPTION
      - ICD9_CODE
      - ICD9_DIAGNOSIS_DESCRIPTION
      - IMEI_HARDWARE_ID
      - IP_ADDRESS
      - IRELAND_PASSPORT
      - IRELAND_PPSN
      - LOCATION
      - MAC_ADDRESS
      - PASSWORD_IN_CODE
      - PERSON_NAME
      - PHONE_NUMBER
      - PROTECTED_HEALTH_INFORMATION
      - RANDOMLY_GENERATED_TOKEN
      - SCOTLAND_COMMUNITY_HEALTH_INDEX_NUMBER
      - STREET_ADDRESS
      - SWIFT_CODE
      - UK_ELECTORAL_ROLL_NUMBER
      - UK_DRIVERS_LICENSE_NUMBER
      - UK_NATIONAL_HEALTH_SERVICE_NUMBER
      - UK_NATIONAL_INSURANCE_NUMBER
      - UK_PASSPORT
      - UK_TAXPAYER_REFERENCE
      - US_BANK_ROUTING_MICR
      - US_DRIVERS_LICENSE_NUMBER
      - US_EMPLOYER_IDENTIFICATION_NUMBER
      - US_HEALTHCARE_NPI
      - US_HEALTH_INSURANCE_CLAIM_NUMBER
      - US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
      - US_MEDICARE_BENEFICIARY_IDENTIFIER
      - US_PASSPORT
      - US_SOCIAL_SECURITY_NUMBER
      - US_VEHICLE_IDENTIFICATION_NUMBER
      type: string
    EachItemV2Array:
      items:
        $ref: '#/components/schemas/ScanResponseV2'
      type: array
    ContextRule_proximity:
      description: The object containing the length of characters before and after finding to evaluate context.
      example:
        windowAfter: 1
        windowBefore: 6
      properties:
        windowBefore:
          description: The number of leading characters to include as context before the finding itself.
          type: integer
        windowAfter:
          description: The number of trailing characters to include as context after the finding itself.
          type: integer
      type: object
    ScanResponseV2Array:
      items:
        $ref: '#/components/schemas/EachItemV2Array'
      type: array
    DetectorType:
      description: The type of detector.
      enum:
      - NIGHTFALL_DETECTOR
      - REGEX
      - WORD_LIST
      type: string
    Confidence:
      description: The confidence level of a finding.
      enum:
      - VERY_UNLIKELY
      - UNLIKELY
      - POSSIBLE
      - LIKELY
      - VERY_LIKELY
      type: string
    ScanResponse_location:
      properties:
        byteRange:
          $ref: '#/components/schemas/ScanResponse_location_byteRange'
        unicodeRange:
          $ref: '#/components/schemas/ScanResponse_location_unicodeRange'
      type: object
    ScanResponse_location_byteRange:
      properties:
        start:
          description: The index of the fragment's starting byte.
          type: integer
        end:
          description: The index of the fragment's ending byte.
          type: integer
      type: object
    ScanResponseV2:
      properties:
        fragment:
          description: The text sample that was flagged.
          type: string
        detectorName:
          description: The data type flagged in the text fragment.
          type: string
        confidence:
          $ref: '#/components/schemas/Confidence'
        location:
          $ref: '#/components/schemas/ScanResponse_location'
      type: object
    Condition:
      description: An inclusion condition within a condition set.
      example:
        minNumFindings: 0
        detector:
          regex:
            isCaseSensitive: true
            pattern: pattern
          contextRules:
          - regex:
              isCaseSensitive: true
              pattern: pattern
            proximity:
              windowAfter: 1
              windowBefore: 6
            confidenceAdjustment: {}
          - regex:
              isCaseSensitive: true
              pattern: pattern
            proximity:
              windowAfter: 1
              windowBefore: 6
            confidenceAdjustment: {}
          wordList:
            isCaseSensitive: true
            values:
            - values
            - values
          displayName: displayName
          exclusionRules:
          - regex:
              isCaseSensitive: true
              pattern: pattern
            wordList:
              isCaseSensitive: true
              values:
              - values
              - values
          - regex:
              isCaseSensitive: true
              pattern: pattern
            wordList:
              isCaseSensitive: true
              values:
              - values
              - values
      properties:
        minNumFindings:
          description: The minimum number of findings required in order for this detector to be reported.
          type: integer
        minConfidence:
          $ref: '#/components/schemas/Confidence'
        detector:
          $ref: '#/components/schemas/Detector'
      type: object
    Regex:
      description: The regex object for the regex detector, context rules, and exclusion rules.
      example:
        isCaseSensitive: true
        pattern: pattern
      properties:
        pattern:
          description: The regex pattern to match on.
          type: string
        isCaseSensitive:
          description: The case sensitivity for the regex pattern.
          type: boolean
      type: object
  securitySchemes:
    apiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey
x-amazon-apigateway-documentation:
  version: v2.1
  createdDate: '2016-11-17T07:03:59.000Z'
  documentationParts:
  - location:
      type: API
    properties:
      info:
        description: This API exposes detectors for sensitive data in arbitrary string payloads.
  - location:
      type: METHOD
      path: /v2/scan
      method: POST
    properties:
      tags:
      - scan
      summary: Verify whether the given string matches any of the sensitive data types
  - location:
      type: REQUEST_BODY
      path: /v2/scan
      method: POST
    properties:
      description: Object containing the string payload to scan, as well as the sensitive data types to verify against.
  - location:
      type: RESPONSE
      method: '*'
      statusCode: '200'
    properties:
      description: Successful operation
x-amazon-apigateway-gateway-responses:
  MISSING_AUTHENTICATION_TOKEN:
    statusCode: 404
    responseTemplates:
      application/json: "{\n     \"message\": \"resource not found\",\n     \"path\": \"$context.path\",\n     \"httpMethod\": \"$context.httpMethod\",\n     \"statusCode\": 404\n} "