HackNotice Calc endpoints API

Aggregate/rollup calculation endpoints for breaches, threat actors and per-service alerts.

Operations 28

POST /breachcalcs/aggregatedates POST /breachcalcs/aggregatedates #
POST /breachcalcs/count POST /breachcalcs/count #
POST /breachcalcs/listdates POST /breachcalcs/listdates #
POST /breachcalcs/page/{pageNum} POST /breachcalcs/page/:pageNum #
GET /breachcalcs/{docId} GET /breachcalcs/:docId #
POST /domainalertcalcs/aggregatedates POST /domainalertcalcs/aggregatedates #
POST /domainalertcalcs/count POST /domainalertcalcs/count #
POST /domainalertcalcs/listdates POST /domainalertcalcs/listdates #
POST /domainalertcalcs/page/{pageNum} POST /domainalertcalcs/page/:pageNum #
POST /domainalertcalcs/stats/aggregatedates POST /domainalertcalcs/stats/aggregatedates #
GET /domainalertcalcs/{docId} GET /domainalertcalcs/:docId #
POST /enduseralertcalcs/aggregatedates POST /enduseralertcalcs/aggregatedates #
POST /enduseralertcalcs/count POST /enduseralertcalcs/count #
POST /enduseralertcalcs/listdates POST /enduseralertcalcs/listdates #
POST /enduseralertcalcs/page/{pageNum} POST /enduseralertcalcs/page/:pageNum #
GET /enduseralertcalcs/{docId} GET /enduseralertcalcs/:docId #
POST /hackalertcalcs/aggregatedates POST /hackalertcalcs/aggregatedates #
POST /hackalertcalcs/count POST /hackalertcalcs/count #
POST /hackalertcalcs/listdates POST /hackalertcalcs/listdates #
POST /hackalertcalcs/page/{pageNum} POST /hackalertcalcs/page/:pageNum #
GET /hackalertcalcs/{docId} GET /hackalertcalcs/:docId #
POST /threatactorcalcs/aggregatedates POST /threatactorcalcs/aggregatedates #
POST /threatactorcalcs/aggregatedistinct POST /threatactorcalcs/aggregatedistinct #
POST /threatactorcalcs/count POST /threatactorcalcs/count #
POST /threatactorcalcs/distinct POST /threatactorcalcs/distinct #
POST /threatactorcalcs/listdates POST /threatactorcalcs/listdates #
POST /threatactorcalcs/page/{pageNum} POST /threatactorcalcs/page/:pageNum #
GET /threatactorcalcs/{docId} GET /threatactorcalcs/:docId #

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/hacknotice-calc-endpoints-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

hacknotice-calc-endpoints-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: HackNotice Calc endpoints API
  version: '2026-08-22'
  summary: External threat-intelligence API for first-party, third-party and end-user breach monitoring, threat research and vendor assessments.
  description: 'HackNotice''s REST API over its external threat-intelligence platform: credential and breach alerts for first-party domains, third-party vendors and end users; dark-web / hacker-forum research search; and AI-assisted vendor security assessments.


    PROVENANCE: this document was DERIVED by API Evangelist from HackNotice''s own published Postman collection "HackNotice-API", reached at https://api-docs.hacknotice.com (HTTP 301 -> https://documenter.getpostman.com/view/806684/2sBXiri7pT), linked from HackNotice''s help centre article "API". Paths, methods, parameters, request bodies and tags are transcribed from that collection; nothing was invented. Concrete record ids in the collection''s example URLs were templated into path parameters, and every token-shaped example value was redacted.


    HackNotice publishes a rate limit of 1 query per second, and states that API access is granted to approved accounts only after a 30-minute consultation call.'
  termsOfService: https://hacknotice.com/businesstandc/
  contact:
    name: HackNotice Support
    url: https://hacknotice.zendesk.com/hc/en-us
    email: support@hacknotice.com
  x-api-evangelist-derived-from: https://api-docs.hacknotice.com
servers:
- url: https://extensionapi.hacknotice.com
  description: HackNotice production API host, as declared by HackNotice's own first-party n8n node (API_BASE_URL in credentials/HackNoticeApi.credentials.ts, github.com/HackNotice/n8n-nodes-hacknotice). The published Postman collection ships an internal {{url}} variable pointing at a developer VPN host, which is not the production base.
security:
- jwtAuth: []
- apiKeyAuth: []
tags:
- name: Calc endpoints
  description: Aggregate/rollup calculation endpoints for breaches, threat actors and per-service alerts.
paths:
  /breachcalcs/aggregatedates:
    post:
      tags:
      - Calc endpoints
      summary: POST /breachcalcs/aggregatedates
      operationId: postBreachcalcsAggregatedates
      description: 'Folder: Breaches. Mongo $group aggregation that sums totals, per-NAICS counts, per-geo-region counts, and per-source counts over the matching docs. Body fields : same date/naics/georegion filters as /count , plus: csv (boolean, optional) — if truthy, response is a CSV download ( Content-Disposition: attachment; filename=breachcalcs.csv ); otherwise JSON. Response : array with one aggregated object containing total , totalIndustries , totalGeographies , naics11 .. naics99 , geoEurope .. geoMiddleEast , sourceSec .. sourceLeakreport .'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
                csv:
                  type: boolean
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
              csv: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /breachcalcs/count:
    post:
      tags:
      - Calc endpoints
      summary: POST /breachcalcs/count
      operationId: postBreachcalcsCount
      description: 'Folder: Breaches. Returns the count of breach-landscape records matching the filter. Body fields startdate (string, ISO date) — required together with enddate to filter by date range. If either is empty, the date filter is skipped. enddate (string, ISO date) naics (string|number, optional) — single NAICS code filter. If absent, exclusivenaics is set to null (i.e. "all NAICS"). naicsarray (array, optional) — NAICS $in filter; overrides naics when present. georegions (string, optional) — single geo-region filter. georegionsarray (array, optional) — geo-region $in filter; overrides georegions when present. Response : integer count.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /breachcalcs/listdates:
    post:
      tags:
      - Calc endpoints
      summary: POST /breachcalcs/listdates
      operationId: postBreachcalcsListdates
      description: 'Folder: Breaches. Unpaginated list of breach-landscape records matching the filter, sorted by date desc. Body fields : same as /count . Response : array of breach-landscape records.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /breachcalcs/page/{pageNum}:
    post:
      tags:
      - Calc endpoints
      summary: POST /breachcalcs/page/:pageNum
      operationId: postBreachcalcsPagePagenum
      description: 'Folder: Breaches. Paginated list of breach-landscape records (50 per page, sorted by date desc). Path params pageNum (integer) — zero-indexed page. Body fields : naics , naicsarray , georegions , georegionsarray — same semantics as /count . Note: this handler does not apply a date filter. Response : array of breach-landscape records.'
      parameters:
      - name: pageNum
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /breachcalcs/{docId}:
    get:
      tags:
      - Calc endpoints
      summary: GET /breachcalcs/:docId
      operationId: getBreachcalcsDocid
      description: 'Folder: Breaches. Fetch a single breach-landscape record by _id . Path params docId — Mongo ObjectId of the breach-landscape record. Response : the breach-landscape record.'
      parameters:
      - name: docId
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /domainalertcalcs/aggregatedates:
    post:
      tags:
      - Calc endpoints
      summary: POST /domainalertcalcs/aggregatedates
      operationId: postDomainalertcalcsAggregatedates
      description: 'Folder: First Party Alerts. Aggregates totalcreddump , totalinfostealer , totaltags , totaltaggroups , totalleakfiles , total , plus rolled-up taggroups and per-leakfile counts over the matching docs. Customer types accepted: domain , research , enduser .'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                domainwatchlist_id:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              domainwatchlist_id: ''
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /domainalertcalcs/count:
    post:
      tags:
      - Calc endpoints
      summary: POST /domainalertcalcs/count
      operationId: postDomainalertcalcsCount
      description: 'Folder: First Party Alerts. Count of domain credential-exposure records for the authenticated customer. Body fields startdate / enddate (string, ISO date, optional pair) — date range filter. domainwatchlist_id (string, optional) — filter to a single domain watchlist. Response : integer count.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                domainwatchlist_id:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              domainwatchlist_id: ''
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /domainalertcalcs/listdates:
    post:
      tags:
      - Calc endpoints
      summary: POST /domainalertcalcs/listdates
      operationId: postDomainalertcalcsListdates
      description: 'Folder: First Party Alerts. Unpaginated list, sorted by date desc, for the authenticated customer.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                domainwatchlist_id:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              domainwatchlist_id: ''
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /domainalertcalcs/page/{pageNum}:
    post:
      tags:
      - Calc endpoints
      summary: POST /domainalertcalcs/page/:pageNum
      operationId: postDomainalertcalcsPagePagenum
      description: 'Folder: First Party Alerts. Paginated list (50 per page) for the authenticated customer.'
      parameters:
      - name: pageNum
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domainwatchlist_id:
                  type: string
            example:
              domainwatchlist_id: ''
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /domainalertcalcs/stats/aggregatedates:
    post:
      tags:
      - Calc endpoints
      summary: POST /domainalertcalcs/stats/aggregatedates
      operationId: postDomainalertcalcsStatsAggregatedates
      description: 'Folder: First Party Alerts. Stats-flavored aggregation over a preset domain-watchlist changeset . Body fields startdate / enddate — date range. changeset (string) — preset name (e.g. "USA" ) selecting a server-side group of domain watchlists; without it the aggregation has no $in set.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                changeset:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              changeset: USA
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /domainalertcalcs/{docId}:
    get:
      tags:
      - Calc endpoints
      summary: GET /domainalertcalcs/:docId
      operationId: getDomainalertcalcsDocid
      description: 'Folder: First Party Alerts. Fetch a single domain credential-exposure record by _id .'
      parameters:
      - name: docId
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /enduseralertcalcs/aggregatedates:
    post:
      tags:
      - Calc endpoints
      summary: POST /enduseralertcalcs/aggregatedates
      operationId: postEnduseralertcalcsAggregatedates
      description: 'Folder: End User Alerts. Aggregation over the matching employee credential-exposure records for the authenticated customer.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /enduseralertcalcs/count:
    post:
      tags:
      - Calc endpoints
      summary: POST /enduseralertcalcs/count
      operationId: postEnduseralertcalcsCount
      description: 'Folder: End User Alerts. Count of employee credential-exposure records for the authenticated customer. Body fields startdate / enddate (string, ISO date, optional pair) — date range. Response : integer count.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /enduseralertcalcs/listdates:
    post:
      tags:
      - Calc endpoints
      summary: POST /enduseralertcalcs/listdates
      operationId: postEnduseralertcalcsListdates
      description: 'Folder: End User Alerts. Unpaginated list, sorted by date desc, for the authenticated customer.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /enduseralertcalcs/page/{pageNum}:
    post:
      tags:
      - Calc endpoints
      summary: POST /enduseralertcalcs/page/:pageNum
      operationId: postEnduseralertcalcsPagePagenum
      description: 'Folder: End User Alerts. Paginated list (50 per page) for the authenticated customer.'
      parameters:
      - name: pageNum
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
            example: {}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /enduseralertcalcs/{docId}:
    get:
      tags:
      - Calc endpoints
      summary: GET /enduseralertcalcs/:docId
      operationId: getEnduseralertcalcsDocid
      description: 'Folder: End User Alerts. Fetch a single employee credential-exposure record by _id .'
      parameters:
      - name: docId
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /hackalertcalcs/aggregatedates:
    post:
      tags:
      - Calc endpoints
      summary: POST /hackalertcalcs/aggregatedates
      operationId: postHackalertcalcsAggregatedates
      description: 'Folder: Third Party Alerts. $group aggregation over the matching docs for the authenticated customer.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /hackalertcalcs/count:
    post:
      tags:
      - Calc endpoints
      summary: POST /hackalertcalcs/count
      operationId: postHackalertcalcsCount
      description: 'Folder: Third Party Alerts. Count of hack/breach exposure records for the authenticated customer. Body fields : same as breachcalcs /count . Response : integer count.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /hackalertcalcs/listdates:
    post:
      tags:
      - Calc endpoints
      summary: POST /hackalertcalcs/listdates
      operationId: postHackalertcalcsListdates
      description: 'Folder: Third Party Alerts. Unpaginated list, sorted by date desc, for the authenticated customer.'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              startdate: '2025-04-01'
              enddate: '2025-05-01'
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /hackalertcalcs/page/{pageNum}:
    post:
      tags:
      - Calc endpoints
      summary: POST /hackalertcalcs/page/:pageNum
      operationId: postHackalertcalcsPagePagenum
      description: 'Folder: Third Party Alerts. Paginated list (50 per page) for the authenticated customer.'
      parameters:
      - name: pageNum
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                naics:
                  type: string
                naicsarray:
                  type: array
                georegions:
                  type: string
                georegionsarray:
                  type: array
            example:
              naics: ''
              naicsarray: []
              georegions: ''
              georegionsarray: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /hackalertcalcs/{docId}:
    get:
      tags:
      - Calc endpoints
      summary: GET /hackalertcalcs/:docId
      operationId: getHackalertcalcsDocid
      description: 'Folder: Third Party Alerts. Fetch a single hack/breach exposure record by _id .'
      parameters:
      - name: docId
        in: path
        required: true
        schema:
          type: string
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized — missing or invalid JWT / API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - jwtAuth: []
      - apiKeyAuth: []
  /threatactorcalcs/aggregatedates:
    post:
      tags:
      - Calc endpoints
      summary: POST /threatactorcalcs/aggregatedates
      operationId: postThreatactorcalcsAggregatedates
      description: 'Folder: Threat Actors. Mongo $group aggregation over the matching docs. Body fields : same as /count , plus: harvesterarray (array, optional) — harvester $in filter. csv / exportcsv (boolean, optional) — if truthy, response is a CSV download. Response : aggregated totals (per-NAICS, per-geo-region, etc.) similar to breachcalcs /aggregatedates .'
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startdate:
                  type: string
                enddate:
                  type: string
                naics:
                  type

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hacknotice/refs/heads/main/openapi/hacknotice-calc-endpoints-api-openapi.yml