Getting Your API Credentials
Before initializing the client, you need to obtain your API credentials from Elementary Cloud.Generate an Access Token
You can generate tokens directly from the Elementary UI:- Go to User → Personal Tokens or Account → Account Tokens
- Click Generate token
- (Optional) Add a name/description for the token
- Copy the token and store it securely — it is shown only once
Security
- User tokens are user-scoped bearer tokens and inherit your workspace permissions
- Account tokens are account-scoped bearer tokens with “Can View” permissions
- Treat tokens like passwords — do not share or commit them to version control
- Keep them secret, rotate regularly, and revoke immediately if compromised
Client Initialization
The SDK usesElementaryCloudClient to send data to Elementary Cloud:
project_idis your Python project identifier (chosen by you, used to deduplicate and identify reported assets)api_keyis your API token (generated from the steps above)urlis the full SDK ingest endpoint URL (the Elementary team will provide you with this URL):{base_url}/sdk-ingest/{env_id}/batch- Example:
https://app.elementary-data.com/sdk-ingest/a6b2425d-36e2-4e13-8458-9825688ca1f2/batch
- Example:
Test Context
Tests are run within anelementary_test_context which automatically captures test results:
raise_on_error
By default, elementary_test_context uses raise_on_error=False. This means that if a decorated test (or something inside the context) raises an exception, the SDK captures it and records an ERROR execution so you can still send results to Elementary Cloud without crashing your pipeline.
If you prefer fail-fast behavior (for example in CI), pass raise_on_error=True to re-raise exceptions after they are recorded:
Test Decorators
The SDK provides decorators to define tests:@boolean_test- For tests that return True/False (pass/fail)@expected_range- For tests that return numeric values within a range@expected_values- For tests that return values matching a list of expected values@row_count- For tests that return a Sized object (DataFrame, list, etc.) to check row count
Context Manager Approach
You can also use context managers for inline tests:Supported Objects
The SDK supports reporting table assets and test results.Table Assets
Register tables and views in your data warehouse
Test Decorators
Define data quality tests using decorators
Sending Results
After running tests in a context, send results to Elementary Cloud:Error Handling
The SDK handles errors automatically, but you can wrap calls in try-except blocks:Best Practices
- Run multiple tests in one context - All tests in a single
elementary_test_contextare automatically batched - Use descriptive test names - Clear names help identify tests in the Elementary UI
- Include asset metadata - Add descriptions, owners, tags, and dependencies to assets
Next Steps
- Test Decorators - Complete reference for all test decorators
- Table Assets - Learn about table asset structure
- Quickstart - Send your first test results to Elementary Cloud

