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

VariableDescription
AMBIENTMETA_API_KEYAPI key (used if not passed to constructor)
AMBIENTMETA_BASE_URLCustom API base URL
AMBIENTMETA_TIMEOUTRequest 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

ExceptionDescription
AmbientMetaErrorBase exception for all SDK errors
AuthenticationErrorAPI key is invalid or missing
RateLimitErrorRate limit exceeded (has .retry_after)
SessionNotFoundErrorSession ID doesn't exist
SessionExpiredErrorSession has expired (24 hour limit)