Skip to Content

Python SDK — Models

The Python SDK uses Pydantic v2 models for request and response types. All models are importable from pii_redactor_sdk.

Redaction Models

RedactConfig

Configuration for a redaction request.

class RedactConfig(BaseModel): pii_types: list[str] | None = None confidence_threshold: float | None = None language: str | None = None policy_id: str | None = None
FieldTypeDescription
pii_typeslist[str] | NoneEntity types to detect (e.g., ["PERSON", "EMAIL_ADDRESS"]). Detects all if omitted.
confidence_thresholdfloat | NoneMinimum confidence score (0.0—1.0). Default varies by entity type.
languagestr | NoneLanguage code (e.g., "en", "es"). Auto-detected if omitted.
policy_idstr | NoneID of a saved policy to apply. Overrides other config fields.

RedactResponse

Response from a text redaction request.

class RedactResponse(BaseModel): redacted_text: str findings: list[PiiFindingResponse]

PiiFindingResponse

A single PII entity detected in the input.

class PiiFindingResponse(BaseModel): entity_type: str text: str start: int end: int score: float
FieldTypeDescription
entity_typestrThe type of PII detected (e.g., "PERSON", "EMAIL_ADDRESS")
textstrThe original text that was detected
startintStart character offset in the input
endintEnd character offset in the input
scorefloatConfidence score (0.0—1.0)

Job Models

JobResponse

Summary of an asynchronous redaction job.

class JobResponse(BaseModel): id: str status: str input_uri: str output_uri: str | None progress_pct: float created_at: str
FieldTypeDescription
idstrUnique job identifier
statusstrJob status: "pending", "processing", "completed", "failed"
input_uristrInput file URI
output_uristr | NoneOutput file URI (available when completed)
progress_pctfloatCompletion percentage (0—100)
created_atstrISO 8601 timestamp

JobDetailResponse

Extended job response that includes the list of findings.

class JobDetailResponse(JobResponse): findings: list[PiiFindingResponse] | None = None

Policy Models

PolicyCreate

Request body for creating a new policy.

class PolicyCreate(BaseModel): name: str description: str | None = None pii_types: list[str] confidence_threshold: float | None = None language: str | None = None

PolicyUpdate

Request body for updating an existing policy. All fields are optional.

class PolicyUpdate(BaseModel): name: str | None = None description: str | None = None pii_types: list[str] | None = None confidence_threshold: float | None = None language: str | None = None

PolicyResponse

A saved redaction policy.

class PolicyResponse(BaseModel): id: str name: str description: str | None pii_types: list[str] confidence_threshold: float | None language: str | None created_at: str updated_at: str

Batch Models

BatchRedactRequest

Request body for creating a batch redaction job.

class BatchRedactRequest(BaseModel): input_uris: list[str] pii_types: list[str] | None = None policy_id: str | None = None

BatchJobResponse

Status and progress of a batch redaction operation.

class BatchJobResponse(BaseModel): id: str status: str total: int completed: int failed: int jobs: list[JobResponse] created_at: str

API Key Models

ApiKeyCreate

Request body for creating an API key.

class ApiKeyCreate(BaseModel): name: str scopes: list[str] | None = None

ApiKeyCreateResponse

Response when a new API key is created. The key field is only available at creation time.

class ApiKeyCreateResponse(BaseModel): id: str key: str name: str scopes: list[str] | None created_at: str

ApiKeyResponse

An API key record (without the secret key value).

class ApiKeyResponse(BaseModel): id: str name: str scopes: list[str] | None created_at: str

Audit Models

AuditLogResponse

A single audit log entry.

class AuditLogResponse(BaseModel): id: str timestamp: str action: str api_key_id: str resource_id: str | None metadata: dict | None

AuditListResponse

Paginated list of audit log entries.

class AuditListResponse(BaseModel): items: list[AuditLogResponse] total: int limit: int offset: int