Get one action with its diff, guardrail scores, status, result or error, and audit trail.

GEThttps://api.appgoat.ai/v1/actions/{id}
FreeoperationId getAction

Request

curl "https://api.appgoat.ai/v1/actions/123" \
  -H "x-api-key: $APPGOAT_API_KEY"

Path parameters

idstringrequired
Action id (act_…).

Response

200 with data: Action. See the envelope for meta.

idstring
typeActionType
connection_idstring
status"draft" | "pending_approval" | "approved" | "applied" | "failed" | "rejected"
paramsobject
diffDiff
guardrailGuardrail
resultany
What the provider returned when applied.
errorstring | null
created_bystring
api, mcp, playbook:<name> or dashboard.
approved_bystring | null
user:<id>, auto (rule) or api.
rejected_reasonstring | null
creditsinteger
created_atstring
applied_atstring | null
expires_atstring | null
approve_urlstring | null
Dashboard page where a person approves it.
auditobject[]
Only on GET /actions/{id}.
audit[].eventstring
audit[].actorstring
audit[].atstring
audit[].detailobject | null
Example
{
  "data": {
    "id": "act_Qm3xXk2Lw9PaZr0cVb",
    "type": "review.reply",
    "connection_id": "string",
    "status": "draft",
    "params": {},
    "diff": {
      "target": {},
      "changes": [
        {}
      ],
      "summary": "string",
      "notes": [
        "string"
      ]
    },
    "guardrail": {
      "status": "passed",
      "score": 4.5,
      "checks": {},
      "warnings": [
        "string"
      ],
      "checks_failed": [
        {}
      ],
      "model": "string"
    },
    "result": null,
    "error": "string",
    "created_by": "string",
    "approved_by": "string",
    "rejected_reason": "string",
    "credits": 1,
    "created_at": "2026-10-22T10:00:00Z",
    "applied_at": "2026-10-22T10:00:00Z",
    "expires_at": "2026-10-22T10:00:00Z",
    "approve_url": "string",
    "audit": [
      {
        "event": "string",
        "actor": "string",
        "at": "2026-10-22T10:00:00Z",
        "detail": {}
      }
    ]
  },
  "meta": {
    "credits_used": 0,
    "credits_remaining": 9981,
    "request_id": "req_123"
  }
}

Status codes

200
The action.
Missing or invalid API key.
Not found.
Too many requests per second for your plan.