API Reference

List Tactics

Return all 14 ATT&CK Enterprise tactics with per-tactic statistics, including technique counts.

GET
/v1/mitre/tactics

Cost: 1 credit per successful call

Query parameters

This endpoint takes no parameters.

Request

curl https://api.precursorintelligence.com/functions/v1/mitre/tactics \
  -H "Authorization: Bearer $PRECURSOR_API_KEY"

Response

200 OK
{
  "data": {
    "tactics_data": [
      {
        "ID": "TA0001",
        "Name": "Initial Access",
        "Description": "The adversary is trying to get into your network.",
        "Type": "x-mitre-tactic",
        "XMitreShortname": "initial-access",
        "XMitreDomains": ["enterprise-attack"],
        "XMitreVersion": "1.0",
        "Created": "2018-10-17T00:14:20.652Z",
        "Modified": "2019-07-19T17:44:53.176Z",
        "techniqueCount": 9
      },
      {
        "ID": "TA0002",
        "Name": "Execution",
        "Description": "The adversary is trying to run malicious code.",
        "Type": "x-mitre-tactic",
        "XMitreShortname": "execution",
        "XMitreDomains": ["enterprise-attack"],
        "XMitreVersion": "1.0",
        "Created": "2018-10-17T00:14:20.652Z",
        "Modified": "2019-07-19T17:44:53.176Z",
        "techniqueCount": 14
      }
    ],
    "statistics": {
      "totalTactics": 14,
      "totalTechniques": 213
    },
    "generated_at": "2026-05-18T10:24:31.118Z"
  },
  "meta": {
    "request_id": "8b16efb8-9a6c-4ace-b817-11cbee626d08",
    "generated_at": "2026-05-18T10:24:31.118Z",
    "credits": { "charged": 1, "remaining": 9998 }
  }
}

Response fields

data.tactics_dataarrayoptional

The 14 ATT&CK Enterprise tactics, in tactic-ID order. Each object contains the fields below.

data.tactics_data[].IDstringoptional

The canonical tactic identifier (e.g. TA0001).

data.tactics_data[].Namestringoptional

Human-readable tactic name (e.g. Initial Access).

data.tactics_data[].Descriptionstringoptional

The tactic's adversary-objective description, as published by MITRE.

data.tactics_data[].Typestringoptional

The STIX object type. Always x-mitre-tactic.

data.tactics_data[].XMitreShortnamestringoptional

The tactic shortname used to filter techniques (e.g. initial-access).

data.tactics_data[].XMitreDomainsarrayoptional

ATT&CK domains this tactic belongs to (e.g. ["enterprise-attack"]).

data.tactics_data[].XMitreVersionstringoptional

The MITRE object version string.

data.tactics_data[].Createdstringoptional

ISO 8601 timestamp when MITRE created this tactic entry.

data.tactics_data[].Modifiedstringoptional

ISO 8601 timestamp when MITRE last modified this tactic entry.

data.tactics_data[].techniqueCountintegeroptional

Number of techniques mapped to this tactic.

data.statisticsobjectoptional

Aggregate counts across all tactics: totalTactics and totalTechniques.

data.generated_atstringoptional

ISO 8601 timestamp indicating when this response was generated.

Errors

StatuserrorWhen
401invalid_authorizationThe Authorization header is missing or malformed.
401unauthorizedThe key is invalid, revoked, or the request IP is not on the allowlist.
402insufficient_creditsThe organisation's credit balance is below 1.
404not_foundThe route does not exist.
405method_not_allowedOnly GET and OPTIONS are accepted.
500internalAn unexpected server error occurred.

See Errors for the full error reference.