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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/huntress-external-recon-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
openapi: 3.2.0
info:
title: Huntress API Reference External Recon API
description: '© Huntress - All rights reserved
Introduction
Webhook event payloads are available via the dropdown menu above the search bar on this page.'
version: 1.0.0
servers:
- url: https://api.huntress.io
security:
- basic:
- basic_auth
tags:
- name: External Recon
description: Operations about External Recons
paths:
/v1/external_ports:
get:
summary: List External Ports
description: Shows external port records from External Recon scans associated with your account.
parameters:
- in: query
name: limit
description: Max number of resources returned in a paged collection. Defaults to 10, with a minimum of 1 and maximum 500.
required: false
schema:
type: integer
format: int32
default: 10
maximum: 500
minimum: 1
- in: query
name: page_token
description: Token used to request the next page in paginated results. Defaults to 'null'
required: false
schema:
type: string
- in: query
name: sort_field
description: Field to sort by. Defaults to 'id'.
required: false
schema:
type: string
enum:
- id
- port
- protocol
- created_at
- updated_at
default: id
- in: query
name: sort_direction
description: Sort direction. Defaults to 'desc'.
required: false
schema:
type: string
enum:
- asc
- desc
default: desc
- in: query
name: organization_id
description: Filter by organization ID within Huntress account
required: false
schema:
type: integer
format: int32
- in: query
name: protocol
description: Filter by protocol.
required: false
schema:
type: string
enum:
- TCP
- UDP
- in: query
name: port
description: Filter by port number.
required: false
schema:
type: integer
format: int32
- in: query
name: risky_service
description: Filter by whether the detected service is considered risky.
required: false
schema:
type: boolean
- in: query
name: service
description: Filter by the detected service name (lowercase Shodan module name, e.g. 'ssh', 'http', 'rdp').
required: false
schema:
type: string
responses:
'200':
description: List External Ports
content:
application/json:
schema:
type: object
properties:
external_ports:
type: array
items:
$ref: '#/components/schemas/ExternalPort'
pagination:
$ref: '#/components/schemas/Pagination'
required:
- external_ports
- pagination
'403':
description: There was an issue with your API credential or permissions.
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalPort'
tags:
- External Recon
operationId: getV1ExternalPorts
/v1/external_ports/{id}:
get:
summary: Get External Port
description: Shows details on a single external port record associated with your account.
parameters:
- in: path
name: id
description: External port record ID
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Get External Port
content:
application/json:
schema:
type: object
properties:
external_port:
$ref: '#/components/schemas/ExternalPort'
'403':
description: There was an issue with your API credential or permissions.
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalPort'
tags:
- External Recon
operationId: getV1ExternalPortsId
components:
schemas:
ExternalPort:
type: object
properties:
id:
type: integer
format: int64
example: 42
description: A unique identifier for an external port record.
ip_address:
type: string
example: 203.0.113.5
description: The public IPv4 address associated with this external port.
port:
type: integer
format: int32
example: 22
description: The port number.
protocol:
type: string
example: TCP
description: The transport protocol (usually TCP or UDP).
service:
type: string
example: ssh
description: The service or application detected on the port.
risky_service:
type: boolean
example: true
description: Whether the detected service is considered risky.
last_scan_at:
type: string
format: date-time
example: '2026-03-15T12:00:00Z'
description: Timestamp of the last Huntress scan, formatted as per ISO-8601.
last_external_scan_at:
type: string
format: date-time
example: '2026-03-14T08:00:00Z'
description: Timestamp of the last external scan, formatted as per ISO-8601.
organization_ids:
type: array
example:
- 1
- 5
description: IDs of organizations associated with this external port that are accessible to the current user.
description: ExternalPort model
Pagination:
type: object
properties:
next_page_url:
type: string
next_page_token:
type: string
description: Pagination model
securitySchemes:
basic_auth:
type: http
scheme: basic