Skip to content

Shadow AI Monitoring

Shadow AI refers to AI services used by employees without IT approval — such as uploading company data to personal ChatGPT accounts, using unvetted AI tools, or accessing AI via personal devices.

PII Firewall includes a built-in Shadow AI service registry that lets IT administrators and developers define which AI services are approved, monitored, or blocked across the organization.

How It Works

When a user accesses an AI service URL, PII Firewall checks it against the service registry:

StatusAction
approvedAllow — no warning shown
monitoringAllow with warning — usage is logged
blockedBlock — access is denied

Default Service List

PII Firewall ships with a default registry of common AI services:

ServiceDomainDefault Status
ChatGPTchatgpt.com✅ approved
Claudeclaude.ai✅ approved
Geminigemini.google.com✅ approved
OpenAI APIplatform.openai.com✅ approved
Anthropic Consoleconsole.anthropic.com✅ approved
Copilotcopilot.microsoft.com✅ approved
Perplexityperplexity.ai✅ approved
Hugging Chathuggingface.co⚠️ monitoring
NotebookLMnotebooklm.google.com✅ approved
Mistral AImistral.ai⚠️ monitoring
Character.AIcharacter.ai🚫 blocked
Poepoe.com🚫 blocked
Groqgroq.com✅ approved
OpenClawopenclaw.ai✅ approved
Gemmaai.google.dev✅ approved
Antigravityantigravity.google✅ approved

Managing the Registry via API

All registry management is done through the REST API. Authenticate with your admin API key.

Get All Services

http
GET /shadow-ai/services
Authorization: Bearer YOUR_API_KEY

Response:

json
{
  "services": [
    { "id": 1, "service_name": "ChatGPT", "domain": "chatgpt.com", "category": "approved", "is_blocked": false },
    ...
  ]
}

Update a Service's Status

http
PATCH /shadow-ai/services/:id
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "category": "blocked",
  "is_blocked": true
}
FieldValuesDescription
categoryapproved | monitoring | blockedSets the policy level
is_blockedtrue | falseEnables hard block

Add a Custom Service

http
POST /shadow-ai/services
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "service_name": "Acme AI",
  "domain": "acme-ai.example.com",
  "category": "blocked",
  "is_blocked": true
}

Check a URL

Validate whether a specific URL is covered by the registry:

http
POST /shadow-ai/check
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "url": "https://chat.openai.com/..."
}

Response:

json
{
  "detected": true,
  "hostname": "chatgpt.com",
  "service": { "service_name": "ChatGPT", "category": "approved" },
  "action": "allow"
}

For Most Organizations

  1. Keep approved for verified tools (ChatGPT, Claude, Gemini via PII Firewall)
  2. Set monitoring for grey-area tools used informally
  3. Set blocked for tools that handle data in ways that violate your policy

For Strict Compliance Environments

Block all external AI services by default, then approve on a per-tool basis:

bash
# Block all monitoring-category services
for id in 4 5 8 11 12; do
  curl -X PATCH https://pii-firewallproxy-production.up.railway.app/shadow-ai/services/$id \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"category":"blocked","is_blocked":true}'
done

Enterprise: Persistent Configuration

By default, the registry resets on server restart (in-memory store). Enterprise plans support persistent storage via Supabase, allowing policy changes to survive deployments.

Contact enterprise@piifirewall.com to enable persistent Shadow AI configuration.

Next Steps

Privacy by Design.