AVAILABLE

Security

Sensitive Data Inspect & Redact

Inspect or redact bounded text and JSON with deterministic rules, exact spans or JSON pointers, safe evidence, and no model call or payload storage.

CONTRACT

Predictable for agents. Legible for reviewers.

REST
POST /v1/privacy/text/inspect
MCP tool
inspect_sensitive_text
Inputs
Up to 256 KiB of supplied text or JSON, a selected subset of documented detectors, and an optional labeled, generic, or length-preserving replacement style.
Returns
CLEAR, REVIEW_REQUIRED, or BLOCKED with bounded findings, detector counts, exact text offsets or RFC 6901 JSON pointers, safe type-only previews, redacted output where requested, and an agent-readable next action.
Latency
Synchronous
Usage unit
Privacy operation

The focused suite also exposes /v1/privacy/text/redact, /v1/privacy/json/inspect, and /v1/privacy/json/redact plus the separate /mcp/privacy server. It detects a documented set of formatted emails, phones, U.S. SSNs, Luhn-valid payment cards, checksum-valid IBANs, IP addresses, URL credentials, common key/token formats, private-key blocks, and sensitive JSON field names. It is deterministic and non-exhaustive: it does not identify every person, postal address, health fact, biometric, free-form secret, or jurisdiction-specific personal-data category, and it does not certify compliance.

AGENT-READABLE EXCEPTIONS

PRIVACY_INPUT_TOO_LARGEPRIVACY_JSON_TOO_DEEPPRIVACY_JSON_NODE_LIMIT_EXCEEDEDPRIVACY_CANDIDATE_LIMIT_EXCEEDEDPRIVACY_FINDING_LIMIT_EXCEEDEDPRIVACY_OUTPUT_TOO_LARGESENSITIVE_DATA_FOUND
HTTP request
POST /v1/privacy/json/redact
Authorization: Bearer apc_...
Content-Type: application/json

{
  "value": {
    "customer_email": "sam@example.com",
    "authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.payload.signature",
    "note": "Keep this text"
  },
  "replacement_style": "LABELED"
}
cURL (bash)
curl --request POST \
  --url 'https://api-production-9502.up.railway.app/v1/privacy/json/redact' \
  --header 'Authorization: Bearer ${AP_CONTROL_API_KEY}' \
  --header 'Content-Type: application/json' \
  --data '{
  "value": {
    "customer_email": "sam@example.com",
    "authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.payload.signature",
    "note": "Keep this text"
  },
  "replacement_style": "LABELED"
}'
Representative response
{
  "status": "COMPLETED",
  "decision": "REVIEW_REQUIRED",
  "finding_count": 2,
  "counts_by_detector": {
    "EMAIL": 1,
    "SENSITIVE_FIELD": 1
  },
  "findings": [
    {
      "id": "EMAIL-001",
      "detector": "EMAIL",
      "category": "CONTACT",
      "severity": "MEDIUM",
      "confidence": "HIGH",
      "rule_id": "EMAIL_ASCII_V1",
      "start": 0,
      "end": 15,
      "json_pointer": "/customer_email",
      "safe_preview": "[REDACTED:EMAIL]",
      "evidence": {
        "match_length": 15
      },
      "next_action": "Confirm the contact detail is authorized or use the redacted content."
    },
    {
      "id": "SENSITIVE_FIELD-002",
      "detector": "SENSITIVE_FIELD",
      "category": "CREDENTIAL",
      "severity": "HIGH",
      "confidence": "HIGH",
      "rule_id": "SENSITIVE_FIELD_NAME_V1",
      "start": null,
      "end": null,
      "json_pointer": "/authorization",
      "safe_preview": "[REDACTED:SENSITIVE_FIELD]",
      "evidence": {
        "field_name": "authorization",
        "field_category": "credential",
        "value_type": "str",
        "match_length": null
      },
      "next_action": "Review the named field and use the redacted value unless explicit handling is authorized."
    }
  ],
  "issues": [
    {
      "code": "SENSITIVE_DATA_FOUND",
      "severity": "HIGH",
      "message": "The selected deterministic rules found 2 sensitive-data candidates.",
      "evidence": {
        "finding_count": 2,
        "detectors": [
          "EMAIL",
          "SENSITIVE_FIELD"
        ]
      },
      "next_action": "Use the redaction operation or explicitly authorize each required value before continuing."
    }
  ],
  "ruleset_version": "2026-08-01",
  "scan_complete": true,
  "redacted_value": {
    "customer_email": "[REDACTED:EMAIL_1]",
    "authorization": "[REDACTED:SENSITIVE_FIELD_2]",
    "note": "Keep this text"
  },
  "replacements_applied": 2,
  "replacement_style": "LABELED",
  "next_action": "Use only the redacted JSON and review every changed JSON pointer before consequential use."
}
No raw value in evidenceFindings return an exact span or JSON pointer and a type-only marker, never a copy or hash of the matched value.
No model or storageDocumented deterministic rules run in memory; request contents are not written to application records or analytics.
Explicitly non-exhaustiveThe API does not promise to identify every person, address, health fact, free-form secret, or legally defined personal-data category.

Use Sensitive Data Inspect & Redact through RapidAPI.

Choose a capped marketplace plan, copy the generated request, and route the structured result through your own authorized workflow.