Skip to main content
POST
/
api
/
v1
/
guard
Guard Content
curl --request POST \
  --url https://api.promptguard.dev/api/v1/guard \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "messages": [
    {
      "role": "<string>",
      "content": ""
    }
  ],
  "direction": "input",
  "model": "<string>",
  "context": {
    "framework": "<string>",
    "chain_name": "<string>",
    "agent_id": "<string>",
    "session_id": "<string>",
    "tool_calls": [
      {}
    ],
    "metadata": {}
  },
  "retrieved_context": [
    {
      "content": "<string>",
      "source": "<string>",
      "metadata": {}
    }
  ],
  "media": [
    {
      "type": "<string>",
      "mime_type": "<string>",
      "url": "<string>",
      "base64": "<string>",
      "metadata": {}
    }
  ]
}
'
{
  "decision": "<string>",
  "event_id": "<string>",
  "confidence": 123,
  "latency_ms": 123,
  "threat_type": "<string>",
  "redacted_messages": [
    {
      "role": "<string>",
      "content": ""
    }
  ],
  "threats": [
    {
      "type": "<string>",
      "confidence": 123,
      "details": "<string>"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.promptguard.co/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-Key
string
header
required

PromptGuard API key for developer endpoints. Keys start with pg_live_ and are created in the dashboard.

Headers

x-api-key
string | null

Body

application/json

Request body for the guard endpoint.

messages
GuardMessage · object[]
required

Messages to scan (OpenAI-style message array)

Minimum array length: 1
direction
string
default:input

Scan direction: 'input' (pre-LLM) or 'output' (post-LLM)

Pattern: ^(input|output)$
model
string | null

Model being used (for logging)

context
GuardContext · object

Optional framework context

retrieved_context
ContextDoc · object[] | null

RAG-retrieved documents to scan for knowledge poisoning. Each document is individually scanned before being merged into the LLM prompt. Optional; backwards-compatible.

media
MediaPartSchema · object[] | null

Media attachments to scan for steganographic payloads, adversarial patches, and font injection. Optional.

Response

Successful Response

Response from the guard endpoint.

decision
string
required

Policy decision: 'allow', 'block', or 'redact'

event_id
string
required

Unique event identifier for tracking

confidence
number
required

Confidence score of the decision

latency_ms
number
required

Processing time in milliseconds

threat_type
string | null

Primary threat type detected

redacted_messages
GuardMessage · object[] | null

Redacted messages (only present when decision='redact')

threats
ThreatDetail · object[]

Detailed threat breakdown