API Reference

List Atomic Red Team Techniques

Return the Atomic Red Team technique index, with an optional substring filter on technique ID or name. Use this to discover which ATT&CK techniques have atomic test coverage before enumerating tests.

GET
/v1/atomics/techniques

Cost: 1 credit per successful call

Query parameters

qstringoptional

Substring to match against technique ID or name. Must be 1–80 characters. Omit to return all techniques up to the limit.

limitintegeroptionaldefault: 50

Maximum number of techniques to return. Accepted range: 1–100.

Request

curl "https://api.precursorintelligence.com/functions/v1/atomics/techniques?q=credential&limit=10" \
  -H "Authorization: Bearer $PRECURSOR_API_KEY"

Response

200 OK
{
  "data": {
    "count": 4,
    "query": "credential",
    "limit": 10,
    "items": [
      {
        "id": 47,
        "attack_technique": "T1003",
        "display_name": "OS Credential Dumping"
      },
      {
        "id": 48,
        "attack_technique": "T1003.001",
        "display_name": "LSASS Memory"
      },
      {
        "id": 49,
        "attack_technique": "T1003.006",
        "display_name": "DCSync"
      }
    ],
    "generated_at": "2026-05-29T10: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.countintegeroptional

Number of items returned (equals items.length, not the total index size).

data.querystring | nulloptional

The substring filter that was applied, or null if no filter was provided.

data.limitintegeroptional

The effective limit that was applied.

data.itemsarrayoptional

Matched techniques, ordered by technique ID. Each object contains the fields below.

data.items[].idintegeroptional

Internal technique row identifier.

data.items[].attack_techniquestringoptional

ATT&CK technique or sub-technique ID (e.g. T1003, T1003.001).

data.items[].display_namestringoptional

Human-readable technique name.

data.generated_atstringoptional

ISO 8601 timestamp when the response was generated.

Errors

StatuserrorWhen
400invalid_q, invalid_limitA parameter failed validation.
401invalid_authorizationMissing or malformed Authorization header.
401unauthorizedInvalid/revoked key, or IP not allowlisted.
402insufficient_creditsOrganisation credit balance is below 1.
404not_foundThe route or entity does not exist.
405method_not_allowedOnly GET and OPTIONS are accepted.
500internalUnexpected server error (credit auto-refunded).

See Errors for the full error reference.