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.
/v1/atomics/techniquesCost: 1 credit per successful call
Query parameters
qstringoptionalSubstring to match against technique ID or name. Must be 1–80 characters. Omit to return all techniques up to the limit.
limitintegeroptionaldefault: 50Maximum 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
{
"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.countintegeroptionalNumber of items returned (equals items.length, not the total index size).
data.querystring | nulloptionalThe substring filter that was applied, or null if no filter was provided.
data.limitintegeroptionalThe effective limit that was applied.
data.itemsarrayoptionalMatched techniques, ordered by technique ID. Each object contains the fields below.
data.items[].idintegeroptionalInternal technique row identifier.
data.items[].attack_techniquestringoptionalATT&CK technique or sub-technique ID (e.g. T1003, T1003.001).
data.items[].display_namestringoptionalHuman-readable technique name.
data.generated_atstringoptionalISO 8601 timestamp when the response was generated.
Errors
| Status | error | When |
|---|---|---|
| 400 | invalid_q, invalid_limit | A parameter failed validation. |
| 401 | invalid_authorization | Missing or malformed Authorization header. |
| 401 | unauthorized | Invalid/revoked key, or IP not allowlisted. |
| 402 | insufficient_credits | Organisation credit balance is below 1. |
| 404 | not_found | The route or entity does not exist. |
| 405 | method_not_allowed | Only GET and OPTIONS are accepted. |
| 500 | internal | Unexpected server error (credit auto-refunded). |
See Errors for the full error reference.