Python SDK
Install and use the official Python SDK.
Installation
pip install ambientmeta
Quick Start
from ambientmeta import AmbientMeta client = AmbientMeta(api_key="am_live_xxx") # Sanitize result = client.sanitize("Email john@acme.com") print(result.sanitized) # "Email [EMAIL_1]" # Rehydrate final = client.rehydrate("Reply to [EMAIL_1]", result.session_id) print(final.text) # "Reply to john@acme.com"
Async Support
from ambientmeta import AsyncAmbientMeta client = AsyncAmbientMeta(api_key="am_live_xxx") result = await client.sanitize("Email john@acme.com")
Configuration
client = AmbientMeta(
api_key="am_live_xxx",
timeout=30, # seconds
max_retries=3,
base_url="https://api.ambientmeta.com"
)
Environment Variables
| Variable | Description |
|---|---|
AMBIENTMETA_API_KEY | API key (used if not passed to constructor) |
AMBIENTMETA_BASE_URL | Custom API base URL |
AMBIENTMETA_TIMEOUT | Request timeout in seconds |
Methods
client.sanitize(text, entities=None, custom_patterns=True)
Sanitize text by replacing PII with placeholders. Returns SanitizeResult with .sanitized, .session_id, .entities_found, .entities, .processing_ms
client.rehydrate(text, session_id)
Restore original PII to sanitized text. Returns RehydrateResult with .text, .entities_restored, .processing_ms
client.patterns.create(name, pattern, description=None, examples=None)
Create a custom entity pattern.
client.patterns.list()
List all custom patterns for the organization.
client.patterns.delete(pattern_id)
Delete a custom pattern.
Error Handling
from ambientmeta import AmbientMeta from ambientmeta.errors import RateLimitError, SessionExpiredError, AuthenticationError client = AmbientMeta() try: result = client.sanitize(user_input) final = client.rehydrate(response, result.session_id) except RateLimitError as e: print(f"Rate limited. Retry in {e.retry_after}s") except SessionExpiredError: result = client.sanitize(user_input) # Re-sanitize except AuthenticationError: print("Check your API key")
Error Classes
| Exception | Description |
|---|---|
AmbientMetaError | Base exception for all SDK errors |
AuthenticationError | API key is invalid or missing |
RateLimitError | Rate limit exceeded (has .retry_after) |
SessionNotFoundError | Session ID doesn't exist |
SessionExpiredError | Session has expired (24 hour limit) |