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| Field | Type | Description |
|---|---|---|
pii_types | list[str] | None | Entity types to detect (e.g., ["PERSON", "EMAIL_ADDRESS"]). Detects all if omitted. |
confidence_threshold | float | None | Minimum confidence score (0.0—1.0). Default varies by entity type. |
language | str | None | Language code (e.g., "en", "es"). Auto-detected if omitted. |
policy_id | str | None | ID 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| Field | Type | Description |
|---|---|---|
entity_type | str | The type of PII detected (e.g., "PERSON", "EMAIL_ADDRESS") |
text | str | The original text that was detected |
start | int | Start character offset in the input |
end | int | End character offset in the input |
score | float | Confidence 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| Field | Type | Description |
|---|---|---|
id | str | Unique job identifier |
status | str | Job status: "pending", "processing", "completed", "failed" |
input_uri | str | Input file URI |
output_uri | str | None | Output file URI (available when completed) |
progress_pct | float | Completion percentage (0—100) |
created_at | str | ISO 8601 timestamp |
JobDetailResponse
Extended job response that includes the list of findings.
class JobDetailResponse(JobResponse):
findings: list[PiiFindingResponse] | None = NonePolicy 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 = NonePolicyUpdate
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 = NonePolicyResponse
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: strBatch 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 = NoneBatchJobResponse
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: strAPI Key Models
ApiKeyCreate
Request body for creating an API key.
class ApiKeyCreate(BaseModel):
name: str
scopes: list[str] | None = NoneApiKeyCreateResponse
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: strApiKeyResponse
An API key record (without the secret key value).
class ApiKeyResponse(BaseModel):
id: str
name: str
scopes: list[str] | None
created_at: strAudit 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 | NoneAuditListResponse
Paginated list of audit log entries.
class AuditListResponse(BaseModel):
items: list[AuditLogResponse]
total: int
limit: int
offset: int