NeuroStrike

API Reference

The NeuroStrike REST API — authenticate with an API key to list targets, launch Strikes, and pull findings.

The NeuroStrike REST API lets you launch Strikes and pull results from your own tooling — CI pipelines, ticketing, or a SIEM. All endpoints live under https://neurostrike.com/api/v1 and return JSON.

The full machine-readable specification (OpenAPI 3.0) is published at /api/openapi. Import it into Postman, Insomnia, or a code generator to get typed clients.

Authentication

Create an API key in the dashboard under Settings → API keys. The key is shown once — store it in a secrets manager. Each key belongs to one organization; every request made with it is scoped to that organization.

Send the key on every request, either as a bearer token or in the X-API-Key header:

curl -H "Authorization: Bearer $NEUROSTRIKE_API_KEY" \
  https://neurostrike.com/api/v1/target/list

Permissions

A key only grants the permissions you select when you create it. The defaults are scan:read, scan:write, and finding:read.

PermissionAllows
target:readList and read targets
scan:readList Strikes and read a Strike with its findings
scan:writeLaunch a Strike
finding:readList findings

Keys can be given an expiry date and revoked at any time from the same settings page.

Targets

GET /api/v1/target/list

List the organization's targets. Requires target:read.

Query parameterTypeNotes
verifiedbooleanOnly verified (or unverified) targets
isActivebooleanOnly active (or inactive) targets
limitnumber1–100, default 20
cursorstringFrom the previous page's nextCursor

GET /api/v1/target/get

Get one target. Requires target:read.

Query parameterTypeNotes
targetIdstringRequired

Targets are created and ownership-verified in the dashboard (DNS TXT record, file upload, HTML meta tag, or IP ownership). A Strike can only be launched against a verified target.

Strikes

POST /api/v1/scan/trigger

Launch a Strike against a verified target. Requires scan:write.

curl -X POST https://neurostrike.com/api/v1/scan/trigger \
  -H "Authorization: Bearer $NEUROSTRIKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "targetId": "tgt_123", "customInstructions": "Focus on the API; do not brute-force logins." }'
Body fieldTypeNotes
targetIdstringRequired
customInstructionsstringOptional, up to 10,000 characters. Advisory guidance for the AI — see Configuration
Response
{ "scanId": "scn_456", "status": "QUEUED", "message": "Scan triggered successfully" }

The request is refused if the target is unverified or inactive, if it is marked as a production environment without production Strikes enabled, if its on-prem agent is offline, or if your plan's Strike quota is used up.

GET /api/v1/scan/list

List Strikes, newest first. Requires scan:read.

Query parameterTypeNotes
targetIdstringOnly Strikes for this target
statusstringQUEUED, RUNNING, COMPLETED, FAILED, or CANCELLED
limitnumber1–100, default 20
cursorstringFrom the previous page's nextCursor

GET /api/v1/scan/get

Get one Strike with its findings. Requires scan:read.

Query parameterTypeNotes
scanIdstringRequired

Secrets found during a Strike are redacted from finding evidence before they are returned.

Findings

GET /api/v1/finding/list

List findings across the organization. Requires finding:read.

Query parameterTypeNotes
targetIdstringOnly findings for this target
scanIdstringOnly findings from this Strike
severitystringCRITICAL, HIGH, MEDIUM, LOW, or INFO
statusstringOPEN, IN_PROGRESS, RESOLVED, WONT_FIX, or FALSE_POSITIVE
categorystringe.g. INJECTION, AUTHORIZATION, XSS — see the OpenAPI spec for the full list
limitnumber1–100, default 20
cursorstringFrom the previous page's nextCursor

Pagination

List endpoints return a page of results and a cursor:

{ "items": [ ... ], "nextCursor": "clx..." }

Pass nextCursor as the cursor query parameter to get the next page. When nextCursor is absent, you have reached the end.

Errors

Errors use standard HTTP status codes with a JSON body containing a message and a code:

StatusMeaning
400Invalid input
401Missing, invalid, or expired API key
403The key lacks the required permission, or the action is not authorized
404The resource does not exist in this organization
412A precondition failed (e.g. the target is not verified)
429Rate limit exceeded

Rate limits

Each API key may make 120 requests per minute. Requests over the limit receive 429; wait and retry with backoff.

On this page