Nord Security Password Intelligence API

Endpoints for comprehensive password data monitoring in data breaches, including zero-knowledge search capabilities. These operations enable robust password security protection and exposure assessment.

Operations 6

GET /email/{email-sha256}/password Single email ATO prevention #
POST /email/password Bulk email ATO prevention #
POST /email/password/filtered Single email ATO prevention with filtering #
POST /email/password/filtered/bulk Bulk email ATO prevention #
GET /zero-knowledge/password/{hash-type}/{hash-range} Passwords search #
POST /zero-knowledge/password Bulk passwords search #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nord-security-password-intelligence-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

nord-security-password-intelligence-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NordStellar Enterprise Data Password Intelligence API
  description: '## Overview

    The NordStellar Enterprise Data API provides comprehensive access to our data breach intelligence platform, enabling organizations to integrate real-time security monitoring and alerting capabilities directly into their existing infrastructure.

    This API allows you to proactively protect your users by detecting when their sensitive information has been compromised in data breaches across the internet.


    **Key Features**:

    - **Real-time Breach Monitoring**: Receive immediate notifications when user data appears in newly discovered data breaches.

    - **Zero-Knowledge Architecture**: Search for compromised sensitive data (credit cards, national identification numbers) using secure hash-based methods that never transmit the actual sensitive information.

    - **Comprehensive Data Sources**: Access intelligence from multiple sources including corporate data breaches, malware infection logs, and stolen credential lists.

    - **Flexible Integration Options**: Support for webhook notifications, bulk operations, and subscription management to fit your organization''s unique requirements.

    - **Enterprise-Grade Security**: Secure authentication methods, rate limiting, and quota management to ensure responsible and controlled API usage.'
  version: '3.1'
servers:
- url: /api/v3/data
security:
- ApiKeyAuth: []
- BasicAuth: []
tags:
- name: Password Intelligence
  description: 'Endpoints for comprehensive password data monitoring in data breaches, including zero-knowledge search capabilities.

    These operations enable robust password security protection and exposure assessment.'
paths:
  /email/{email-sha256}/password:
    get:
      tags:
      - Password Intelligence
      summary: Single email ATO prevention
      description: 'Used for looking up an email address and its fuzzed passwords. Fuzzed passwords are passwords transformed according to pre-defined rules. The rule set, and thus the number of fuzzed passwords returned depends on the fuzzing_intensity parameter, which ranges from **0** to **10**, **0** being no fuzzing, only original password returned, and **10** being the biggest rule set that returns over 50,000 fuzzed passwords per original password.

        **Rate limit: 10 per second.**'
      operationId: singleEmailPassword
      parameters:
      - $ref: '#/components/parameters/Email'
      - $ref: '#/components/parameters/FuzzingIntensity'
      responses:
        '200':
          description: Returns found data
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Quota-Limit:
              $ref: '#/components/headers/X-Quota-Limit'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
            X-Quota-Reset:
              $ref: '#/paths/~1email/post/responses/200/headers/X-Quota-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailAtoPreventionSample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '404':
          description: No data found
          content: {}
      security:
      - ApiKeyAuth: []
  /email/password:
    post:
      tags:
      - Password Intelligence
      summary: Bulk email ATO prevention
      description: 'Used for looking up email addresses and their fuzzed passwords in bulk. Fuzzed passwords are passwords transformed according to pre-defined rules. The rule set, and thus the number of fuzzed passwords returned depends on the **fuzzing_intensity** parameter, which ranges from **0** to **10**, **0** being no fuzzing, only original password returned, and **10** being the biggest rule set that returns over 50,000 fuzzed passwords per original password.

        The data is returned using pagination by default, pagination behaviour can be modified using **limit** and **offset** parameters.

        **Rate limit: 100 per second.**'
      operationId: emailAtoPrevention
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailsAto'
        required: true
      responses:
        '200':
          description: Returns found data
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Quota-Limit:
              $ref: '#/components/headers/X-Quota-Limit'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
            X-Quota-Reset:
              $ref: '#/paths/~1email/post/responses/200/headers/X-Quota-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailsAtoPreventionSample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
      security:
      - ApiKeyAuth: []
      x-codegen-request-body-name: payload
  /email/password/filtered:
    post:
      tags:
      - Password Intelligence
      summary: Single email ATO prevention with filtering
      description: 'Used for looking up an email address and its fuzzed passwords. Fuzzed passwords are passwords transformed according to pre-defined rules. The rule set, and thus the number of fuzzed passwords returned depends on the fuzzing_intensity parameter, which ranges from **0** to **10**, **0** being no fuzzing, only original password returned, and **10** being the biggest rule set that returns over 50,000 fuzzed passwords per original password.

        This endpoint provides the ability to only return fuzzed passwords from specific sources from IDs provided in the body.

        **Rate limit: 50 per second.**'
      operationId: singleEmailFilteredAtoPrevention
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailAtoFiltered'
        required: true
      responses:
        '200':
          description: Returns found data
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Quota-Limit:
              $ref: '#/components/headers/X-Quota-Limit'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
            X-Quota-Reset:
              $ref: '#/paths/~1email/post/responses/200/headers/X-Quota-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailAtoPreventionSample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
      security:
      - ApiKeyAuth: []
      x-codegen-request-body-name: payload
  /email/password/filtered/bulk:
    post:
      tags:
      - Password Intelligence
      summary: Bulk email ATO prevention
      description: 'Used for looking up email addresses and their fuzzed passwords in bulk. Fuzzed passwords are passwords transformed according to pre-defined rules. The rule set, and thus the number of fuzzed passwords returned depends on the **fuzzing_intensity** parameter, which ranges from **0** to **10**, **0** being no fuzzing, only original password returned, and **10** being the biggest rule set that returns over 50,000 fuzzed passwords per original password.

        This endpoint provides the ability to only return fuzzed passwords from specific sources from IDs provided in the body.

        The data is returned using pagination by default, pagination behaviour can be modified using **limit** and **offset** parameters.

        **Rate limit: 10 per second.**'
      operationId: emailFilteredAtoPrevention
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailsAtoFiltered'
        required: true
      responses:
        '200':
          description: Returns found data
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Quota-Limit:
              $ref: '#/components/headers/X-Quota-Limit'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
            X-Quota-Reset:
              $ref: '#/paths/~1email/post/responses/200/headers/X-Quota-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailsAtoPreventionSample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
      security:
      - ApiKeyAuth: []
      x-codegen-request-body-name: payload
  /zero-knowledge/password/{hash-type}/{hash-range}:
    get:
      tags:
      - Password Intelligence
      summary: Passwords search
      description: 'Zero knowledge endpoints are endpoints for sensitive data specifically designed to avoid the transfer of such data.


        Used for checking if the password has been compromised previously. The

        request must include first 6 characters of the password, hashed using

        **SHA-256** algorithm.


        Hashed passwords are returned in a response that start with the filter characters provided in the request.

        **Rate limit: 200 per second.**'
      operationId: passwordsSearch
      parameters:
      - name: hash-type
        in: path
        required: true
        description: Currently only **sha256**
        schema:
          type: string
      - $ref: '#/components/parameters/HashRange'
      responses:
        '200':
          description: Returns found data
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Request limit per second. Defaults 200 per second
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: The number of requests left for the time window.
            X-RateLimit-Reset:
              schema:
                type: string
                format: date-time
            X-Quota-Limit:
              $ref: '#/components/headers/X-Quota-Limit'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
            X-Quota-Reset:
              $ref: '#/paths/~1email/post/responses/200/headers/X-Quota-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZeroKnowledgePasswordSample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
      security:
      - ApiKeyAuth: []
  /zero-knowledge/password:
    post:
      tags:
      - Password Intelligence
      summary: Bulk passwords search
      description: 'Zero knowledge endpoints are endpoints for sensitive data specifically designed to avoid the transfer of such data.


        Used for checking if the password has been compromised previously. The

        request must include first 6 characters of the password, hashed using

        **SHA-256** algorithm.


        Hashed passwords are returned in a response that start with the filter characters provided in the request.

        **Rate limit: 200 per second.**'
      operationId: passwordsBulkSearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordHashRangesSample'
        required: true
      responses:
        '200':
          description: Returns found data
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Request limit per second. Defaults 200 per second
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: The number of requests left for the time window.
            X-RateLimit-Reset:
              schema:
                type: string
                format: date-time
            X-Quota-Limit:
              $ref: '#/components/headers/X-Quota-Limit'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
            X-Quota-Reset:
              $ref: '#/paths/~1email/post/responses/200/headers/X-Quota-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZeroKnowledgePasswordSample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/paths/~1user/get/responses/400/content/application~1json/schema'
      security:
      - ApiKeyAuth: []
components:
  schemas:
    EmailAtoFiltered:
      required:
      - email_sha256
      type: object
      properties:
        email_sha256:
          type: string
          description: A SHA256 hashed email address to generate fuzzed passwords for
          example: 2fc8583f3be53fcf1a6e0f972869478e392ef2a6f62b7b3735ca53af921ea304
        database_ids:
          type: array
          description: A list of datbase IDs to generate fuzzed passwords
          items:
            type: string
          example:
          - 5f4e1f2e4b1d4d4e4b1d4d4e
          - 5f4e1f2e4b1d4d4e4b1d4d4f
        malware_ids:
          type: array
          description: A list of malware IDs to generate fuzzed passwords
          items:
            type: string
          example:
          - 5f4e1f2e4b1d4d4e4b1d4d4e
          - 5f4e1f2e4b1d4d4e4b1d4d4f
        credential_list_ids:
          type: array
          description: A list of credential list IDs to generate fuzzed passwords
          items:
            type: string
          example:
          - 5f4e1f2e4b1d4d4e4b1d4d4e
          - 5f4e1f2e4b1d4d4e4b1d4d4f
        fuzzing_intensity:
          type: integer
          description: Fuzzing intensity level parameter, which ranges from 0 to 10, 0 being no fuzzing, only original password returned, and 10 being the biggest rule set that returns over 50,000 fuzzed passwords per original password.
          default: 1
    EmailsAto:
      required:
      - emails_sha256
      type: object
      properties:
        emails_sha256:
          type: array
          description: A list of SHA256 hashed email addresses to generate fuzzed passwords
          items:
            type: string
          example:
          - 2fc8583f3be53fcf1a6e0f972869478e392ef2a6f62b7b3735ca53af921ea304
        fuzzing_intensity:
          type: integer
          description: Fuzzing intensity level parameter, which ranges from 0 to 10, 0 being no fuzzing, only original password returned, and 10 being the biggest rule set that returns over 50,000 fuzzed passwords per original password.
          default: 1
          example: 0
        limit:
          description: Default is the maximum limit of 5 records
          type: integer
          example: 10
        offset:
          type: integer
          example: 0
    ZeroKnowledgePasswordSample:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              hash:
                type: string
                example: 961b6dd3ede3cb8ecbaacbd68de040cd78eb2ed5889130cceb4c49268ea4d506
              count:
                type: integer
                example: 11534
    EmailsAtoPreventionSample:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EmailAtoPreventionSample'
        limit:
          type: integer
          example: 10
        offset:
          type: integer
          example: 0
    EmailAtoPreventionSample:
      type: object
      properties:
        id:
          type: string
          example: 2a539d6520266b56c3b0c525b9e6128858baeccb5ee9b694a2906e123c8d6dd3
        email:
          type: string
          example: email@example.com
        password:
          type: array
          items:
            type: string
          example:
          - password1
          - password2
    PasswordHashRangesSample:
      required:
      - data
      type: object
      properties:
        hash_ranges:
          type: array
          description: A list of hash ranges (6 hexadecimal characters) to lookup zero knowledge data
          items:
            type: string
          example:
          - '000000'
          - ffffff
        hash_type:
          type: string
          description: Currently only **sha256** is supported.
          example: sha256
    EmailsAtoFiltered:
      required:
      - emails_sha256
      type: object
      properties:
        data:
          type: array
          description: A list of SHA256 hashed email addresses together with source IDs to generate fuzzed passwords
          items:
            type: object
            properties:
              email_sha256:
                type: string
                description: A SHA256 hashed email address to generate fuzzed passwords for
                example: e9e7d0a8f5792167a054b4b1788fbe0bf0eb3d8ba8a6eee8ef42d3d7acb67f18
              database_ids:
                type: array
                description: A list of datbase IDs to generate fuzzed passwords
                items:
                  type: string
                example:
                - 5f4e1f2e4b1d4d4e4b1d4d4e
                - 5f4e1f2e4b1d4d4e4b1d4d4f
              malware_ids:
                type: array
                description: A list of malware IDs to generate fuzzed passwords
                items:
                  type: string
                example:
                - 5f4e1f2e4b1d4d4e4b1d4d4e
                - 5f4e1f2e4b1d4d4e4b1d4d4f
              credential_list_ids:
                type: array
                description: A list of credential list IDs to generate fuzzed passwords
                items:
                  type: string
                example:
                - 5f4e1f2e4b1d4d4e4b1d4d4e
                - 5f4e1f2e4b1d4d4e4b1d4d4f
        fuzzing_intensity:
          type: integer
          description: Fuzzing intensity level parameter, which ranges from 0 to 10, 0 being no fuzzing, only original password returned, and 10 being the biggest rule set that returns over 50,000 fuzzed passwords per original password.
          default: 1
          example: 1
        limit:
          description: Default is the maximum limit of 5 records
          type: integer
          example: 10
        offset:
          type: integer
          example: 0
  headers:
    X-Quota-Remaining:
      schema:
        type: integer
      description: The number of requests left for the period
    X-RateLimit-Limit:
      schema:
        type: integer
      description: Request limit per minute
    X-RateLimit-Remaining:
      schema:
        type: integer
      description: The number of requests left for the time window
    X-Quota-Limit:
      schema:
        type: integer
      description: Quota limit per minute
    X-RateLimit-Reset:
      schema:
        type: string
        format: date-time
      description: Date and time when rate limit counter resets
  parameters:
    Email:
      name: email-sha256
      in: path
      required: true
      description: Hashed lower-cased email address using SHA256 algorithm
      schema:
        type: string
    HashRange:
      name: hash-range
      in: path
      required: true
      schema:
        type: string
    FuzzingIntensity:
      name: fuzzing-intensity
      in: query
      description: Fuzzing intensity level parameter, which ranges from 0 to 10, 0 being no fuzzing, only original password returned, and 10 being the biggest rule set that returns over 50,000 fuzzed passwords per original password.
      schema:
        type: integer
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: Authorization string. Needs to be in the standard BasicAuth format - "Basic BASE64_CREDENTIALS", where BASE64_CREDENTIALS is the user username:password encoded in base64 format.
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY