SuperAPI AI Directory

iblai-api-agent-privacy

Security & auditing

View repository

Updated 10-15 22:16

About this skill

iblai-api-agent-privacy

Configure an agent's Privacy Router via the API: enable PII detection, pick the redact / mask / block action and the entity types to watch, set the response returned when PII is caught, and toggle output filtering — all saved through the single settings/ endpoint — plus review the tenant's read-only PII/PHI detection audit log (privacy-flags). Use when controlling how the agent handles personal data or auditing what sensitive data flowed through the agents.

Auth & conventions

  • Base URL: https://api.iblai.app
  • Header: Authorization: Api-Token $IBLAI_API_KEY on every request.
  • Path vars: {org} = $IBLAI_ORG, {username} = $IBLAI_USERNAME, {mentor} = the agent's unique id (e.g. d17dc729-60fd-4363-81a0-f67d9318b03e).
  • Settings writes go through one endpoint — PUT …/users/{username}/mentors/{mentor}/settings/ with multipart/form-data — sending only the changed field(s).
  • Not connected yet? Run /iblai-api-login first to populate IBLAI_ORG, IBLAI_USERNAME, and IBLAI_API_KEY.

Reads

  • GET https://api.iblai.app/dm/api/ai-mentor/orgs/{org}/users/{username}/mentors/{mentor}/settings/ — load the current privacy fields.
  • GET https://api.iblai.app/dm/api/ai-mentor/orgs/{org}/users/{username}/mentors/{mentor}/public-settings/ — privacy-router state for anonymous (unauthenticated) requests.
  • GET https://api.iblai.app/dm/api/ai-mentor/orgs/{org}/users/{username}/privacy-flags/?mentor={mentor}&rail={pii|phi}&action_taken={redact|mask|block|allow}&source={text_prompt|file_text|file_image|file_pdf|llm_response|memory_retrieval}&session_id={id}&username={u}&start_time={iso}&end_time={iso}&search={q}&page={n}&page_size={n} — list every PII/PHI detection recorded across the tenant (read-only audit log). Each row reports the rail that fired (pii/phi), the action_taken, the source, and detected_entities — the entity types only (e.g. ["EMAIL_ADDRESS", "US_SSN"]), never the raw detected values. File-sourced rows also carry file_name, file_content_type, file_size, and file_reference. The actor is named by username, email, and user_full_name (all three are null for a since-deleted user, since identity resolves through the user relation). search matches username, session_id, and file_name.
  • GET https://api.iblai.app/dm/api/ai-mentor/orgs/{org}/users/{username}/privacy-flags/{id}/ — retrieve a single detection.

Writes

  • PUT …/mentors/{mentor}/settings/ — update privacy fields (multipart/form-data, send only changed keys):
    {
      "enable_privacy_router": "boolean",
      "privacy_action": "allow|redact|mask|block",
      "privacy_entities": "string[] (PERSON, EMAIL_ADDRESS, US_SSN, …)",
      "privacy_response": "string",
      "enable_privacy_output_filter": "boolean",
      "disable_chathistory": "boolean  (Incognito policy: Always Incognito)",
      "disable_privacy_mode": "boolean  (Incognito policy: Never Incognito)"
    }
    

Example

Enable the Privacy Router to redact names, emails, and SSNs, with a custom response and output filtering on (only the changed fields are sent):

curl -X PUT \
  "https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mentors/$MENTOR/settings/" \
  -H "Authorization: Api-Token $IBLAI_API_KEY" \
  -F "enable_privacy_router=true" \
  -F "privacy_action=redact" \
  -F "privacy_entities=PERSON" \
  -F "privacy_entities=EMAIL_ADDRESS" \
  -F "privacy_entities=US_SSN" \
  -F "privacy_response=I can't process personal information. Please remove it and try again." \
  -F "enable_privacy_output_filter=true"

Notes

  • A field left out of the PUT is left unchanged — never resend the whole object.
  • privacy_action is one of allow, redact, mask, or block; block stops the turn and returns privacy_response, redact/mask rewrite the detected PII, and allow only records the detection (see privacy-flags/) and passes the message through unchanged.
  • The two Incognito flags are the agent tier of chat privacy: disable_chathistory makes every conversation incognito (nothing saved to history or memory, for anyone); disable_privacy_mode takes Incognito away from users of this agent (a user whose default is Incognito is saved anonymized instead). Set at most one: with both true the backend checks disable_chathistory first and behaves as Always Incognito (chat-privacy-effective/?mentor= answers mode: disabled, source: mentor; no history is written), while the agent's Privacy tab shows the record as Never Incognito. The organization gate, the user default and the per-session flip are in /iblai-vibe-incognito.
  • privacy_entities is a list of detector names (PERSON, EMAIL_ADDRESS, US_SSN, …) — repeat the -F key per entity in multipart/form-data.
  • enable_privacy_output_filter applies the same detection to the agent's output, not just the user's input.
  • Use the public-settings/ read to confirm the state applied to anonymous (unauthenticated) requests.
  • privacy-flags/ is a read-only audit log — there are no write/delete verbs. A row is recorded at every detection point (text-prompt input, LLM response output, uploaded files, and memory retrieval), so it captures more than just the input rail. rail distinguishes PII (pii) from PHI (phi) detections.
  • Privacy flags store entity types only, so a detection is still audited even on a private turn where the raw prompt is withheld — detected_entities never contains the personal data itself.