Mantis360 Public API
The Mantis360 Public API is a simple REST/JSON interface for reading your discovered assets, vulnerability findings, and sites programmatically — for dashboards, SIEM/ticketing integrations, and reporting. Every request is authenticated with an API key and scoped to the tenant that issued it.
Overview
- Base URL:
https://api.360.mantisops.net - Version: all endpoints are under the
/public/v1prefix. - Format: JSON request and response bodies; UTF-8.
- Auth: a Bearer API key on every request (below).
- Tenancy: a key only ever sees data for the tenant that created it.
Authentication
Create keys in the Mantis360 app under Settings → API Keys (admin only). A key is displayed once at creation — store it securely; it cannot be retrieved again. If a key is lost or exposed, revoke it and issue a new one. Mantis360 keys begin with m3_live_.
Pass the key in the Authorization header as a Bearer token:
Verify a key and see its scopes with the ping endpoint:
Scopes
Each key is granted one of two scopes when created:
| Scope | Grants |
|---|---|
| read | All GET endpoints — list and read assets, findings, and sites. |
| read & write | Everything read allows, plus write endpoints as they are added. There are no write endpoints yet; this scope is reserved for forthcoming ones. |
A request to a write endpoint with a read-only key returns 403. Grant the narrowest scope an integration needs.
Errors
Errors use standard HTTP status codes and a JSON body of the form { "error": "message" }.
| Status | Meaning |
|---|---|
| 400 | Malformed request (e.g. a required field is missing). |
| 401 | Missing, malformed, revoked, or unknown API key. |
| 403 | The key is valid but lacks the required scope. |
| 404 | The resource (e.g. an asset) was not found. |
Endpoints
Verify an API key and return the tenant it belongs to plus its scopes. Useful as a connection test.
List every discovered asset in your tenant. Returns an array of asset objects and a total count. Add ?siteId=<id> to return only assets in one site.
Fetch a single asset by its id. Returns 404 if no such asset exists in your tenant.
List open vulnerability findings (status open or in_progress), most severe first. Returns an array of finding objects and a total count. Add ?siteId=<id> to scope to one site.
List every site in your tenant. Use a site's id to filter the assets and findings endpoints.
Asset object
Fields returned for an asset. Optional fields are omitted when not available for a device.
| Field | Type | Description |
|---|---|---|
| id | string | Unique asset identifier. |
| ip | string | Primary IP address (unique per tenant). |
| hostname | string | Resolved / reported hostname. |
| os | string | Detected operating system. |
| deviceType | string | Classified device type (e.g. server, workstation, router). |
| openPorts | number[] | Open TCP ports. |
| udpPorts | number[] | Open UDP ports, when scanned. |
| macAddress | string | Primary MAC address, when discoverable. |
| tags | string[] | Operator-assigned tags. |
| riskScore | number | Composite risk score (higher = more risk). |
| siteId / probeId / companyId | string | Organizational placement + the probe that discovered it. |
| agentInstalled | boolean | Whether a Mantis360 agent is present on the host. |
| agentVersion | string | Installed agent version, if any. |
| agentLastSeenAt | number | Agent's last check-in (Unix epoch ms). |
| firstSeenAt / lastSeenAt | number | First and most-recent discovery (Unix epoch ms). |
| lastScannedAt | number | Last full scan of the asset (Unix epoch ms). |
Finding object
Fields returned for a vulnerability finding.
| Field | Type | Description |
|---|---|---|
| id | string | Unique finding identifier. |
| assetIp | string | IP of the affected asset. |
| assetId | string | ID of the affected asset, when it still resolves. |
| hostname | string | Hostname of the affected asset. |
| port / service | number / string | Affected port and detected service. |
| title | string | Human-readable finding title. |
| cve | string | Associated CVE identifier, when applicable. |
| severity | string | CRITICAL, HIGH, MEDIUM, LOW, or INFO. |
| cvssScore | number | CVSS base score (0–10). |
| epssScore | number | EPSS exploit-probability score (0–1), when available. |
| remediation | string | Suggested remediation text. |
| remediationStatus | string | open or in_progress (resolved findings are not returned). |
| firstSeenAt / lastSeenAt | number | First and most-recent detection (Unix epoch ms). |
| siteId | string | Site the finding belongs to. |