The Python SDK for Spartera API provides a convenient way to interact with the Spartera platform from Python applications.
Install: pip install spartera-api-sdk
- Python 3.8 or higher
- pip package manager
Transform your data into revenue in under 5 minutes! Here's how to create and sell a data product on the Spartera marketplace:
import os
import json
from spartera_api_sdk import ApiClient, Configuration
from spartera_api_sdk.api import cloud_providers_api, connections_api, assets_api, asset_price_history_api
# Configure client
config = Configuration()
config.host = "https://api.spartera.com"
config.api_key = {'X-API-Key': 'your-api-key-here'}
client = ApiClient(config)
COMPANY_ID = "your-company-id"
USER_ID = "your-user-id"
# Step 1: Discover available data platforms
print("π Step 1: Discovering available platforms...")
storage_api = cloud_providers_api.CloudProvidersApi(client)
engines = storage_api.cloud_providers_get()
bigquery_engine_id = 1 # BigQuery engine ID
print(f"β
Found {len(engines)} supported platforms")
# Step 2: Create a data connection (with credentials in one call!)
print("π Step 2: Creating BigQuery connection...")
connections_instance = connections_api.ConnectionsApi(client)
# Your BigQuery service account JSON (replace with your actual credentials)
service_account_json = {
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "[email protected]",
"client_id": "client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
connection_data = {
"company_id": COMPANY_ID,
"user_id": USER_ID,
"engine_id": bigquery_engine_id,
"name": "My BigQuery Data Warehouse",
"description": "Connection to our company's analytics data",
"visibility": "PRIVATE",
"credential_type": "SERVICE_ACCOUNT",
"credentials": json.dumps(service_account_json),
"verified_usage_ability": True # Legal compliance - you have rights to this data
}
connection = connections_instance.companies_company_id_connections_post(COMPANY_ID, connection_data)
connection_id = connection.connection_id
print(f"β
Created connection: {connection_id}")
# Step 3: Create a marketplace asset
print("π Step 3: Creating marketplace asset...")
assets_instance = assets_api.AssetsApi(client)
asset_data = {
"name": "Average Temperature Analytics",
"description": "Real-time weather temperature analytics from our IoT sensors across major cities",
"company_id": COMPANY_ID,
"connection_id": connection_id,
"asset_type": "CALCULATION",
"sql_logic": "SELECT AVERAGE(temperature) AS avg_temp, city, COUNT(*) AS readings FROM `your-project.weather.sensor_data` WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR) GROUP BY city ORDER BY avg_temp DESC",
"sell_in_marketplace": True, # π₯ This makes it available for purchase!
"source": "MANUAL",
"visibility": "PUBLIC"
}
asset = assets_instance.companies_company_id_assets_post(COMPANY_ID, asset_data)
asset_id = asset.asset_id
print(f"β
Created marketplace asset: {asset_id}")
# Step 4: Set your price and start earning!
print("π° Step 4: Setting price...")
pricing_instance = asset_price_history_api.AssetPriceHistoryApi(client)
price_data = {
"price_usd": 2.00 # $2.00 per analysis (credits calculated automatically)
}
price = pricing_instance.companies_company_id_assets_asset_id_prices_post(COMPANY_ID, asset_id, price_data)
print(f"β
Price set: ${price.price_usd} (β{price.price_credits} credits)")
print("\nπ SUCCESS! Your data product is now live on the Spartera marketplace!")
print(f"π Asset URL: https://marketplace.spartera.com/assets/{asset_id}")
print("π‘ Customers can now discover and purchase your analytics!")That's it! You're now selling data analytics. Every time someone runs your analysis, you earn money!
- Data Connection: Secure link to your BigQuery warehouse
- Analytics Product: Temperature analysis that buyers can purchase
- Marketplace Listing: Your product is discoverable by thousands of potential customers
- Automated Pricing: Credits are calculated automatically based on your USD price
- You set the price ($2.00 in this example)
- Customers pay in credits (auto-converted)
- You earn revenue each time someone uses your analytics
- Spartera handles billing, payments, and customer support
Get your API key from the Spartera Dashboard:
import os
from spartera_api_sdk import ApiClient, Configuration
# Option 1: Direct configuration
config = Configuration()
config.host = "https://api.spartera.com"
config.api_key = {'X-API-Key': 'your-api-key-here'}
# Option 2: Environment variables (recommended)
os.environ['SPARTERA_API_KEY'] = "your-api-key"
os.environ['SPARTERA_COMPANY_ID'] = "your-company-id"
config = Configuration()
config.host = "https://api.spartera.com"
config.api_key = {'X-API-Key': os.getenv('SPARTERA_API_KEY')}
client = ApiClient(config)export SPARTERA_API_KEY="your-api-key"
export SPARTERA_COMPANY_ID="your-company-id"
export SPARTERA_API_BASE_URL="https://api.spartera.com"Create connections to different data platforms:
# BigQuery
bigquery_credentials = {
"type": "service_account",
"project_id": "your-project",
# ... your service account JSON
}
# Snowflake
snowflake_connection = {
"credential_type": "USERNAME_PASSWORD",
"username": "your-username",
"password": "your-password"
}
# API Data Source
api_connection = {
"credential_type": "API_KEY",
"api_endpoint": "https://api.yourcompany.com/data",
"api_key_param": "x-api-key",
"credentials": "your-api-key-value"
}Create different types of marketplace products:
# SQL-based Analytics
calculation_asset = {
"asset_type": "CALCULATION",
"sql_logic": "SELECT COUNT(*) as total_sales, AVG(amount) as avg_order FROM sales WHERE date >= CURRENT_DATE()"
}
# Visualization/Dashboard
visualization_asset = {
"asset_type": "VISUALIZATION",
"viz_chart_type": "BAR",
"viz_dep_var_col_name": "sales_amount",
"viz_indep_var_col_name": "month"
}Set different pricing models:
# Fixed price per analysis
basic_pricing = {"price_usd": 1.50}
# Premium analytics
premium_pricing = {"price_usd": 10.00}
# Bulk discount with sales
sale_pricing = {
"price_usd": 5.00,
"discount_percentage": 20.0,
"sale_start_date": "2024-01-01T00:00:00Z",
"sale_end_date": "2024-01-31T23:59:59Z"
}Manage your products after launch:
# Update asset details
assets_instance.companies_company_id_assets_asset_id_patch(
COMPANY_ID,
asset_id,
{"description": "Updated description with new features"}
)
# Change pricing
new_price = {"price_usd": 3.00}
pricing_instance.companies_company_id_assets_asset_id_prices_post(
COMPANY_ID, asset_id, new_price
)
# Remove from marketplace (but keep private)
assets_instance.companies_company_id_assets_asset_id_patch(
COMPANY_ID,
asset_id,
{"sell_in_marketplace": False}
)
# Get sales analytics
analytics = companies_instance.companies_company_id_analytics_sales_get(COMPANY_ID)
print(f"Total revenue: ${analytics.total_revenue}")from spartera_api_sdk.exceptions import ApiException
try:
asset = assets_instance.companies_company_id_assets_post(COMPANY_ID, asset_data)
except ApiException as e:
print(f"API Error: {e}")
print(f"Status: {e.status}")
print(f"Reason: {e.reason}")
# Handle specific errors
if e.status == 400:
print("Check your asset data format")
elif e.status == 401:
print("Check your API key")
elif e.status == 403:
print("Check your permissions")# Batch operations
connection_ids = []
for platform in ['bigquery', 'snowflake', 'redshift']:
conn = connections_instance.companies_company_id_connections_post(COMPANY_ID, platform_config)
connection_ids.append(conn.connection_id)
# Asset recommendations
recommendations = assets_instance.companies_company_id_assets_asset_id_recommendations_get(
COMPANY_ID, asset_id, limit=10
)
# Performance analytics
performance = companies_instance.companies_company_id_analytics_assets_get(
COMPANY_ID,
start_date="2024-01-01",
end_date="2024-12-31"
)- Platform: PyPI
- Install:
pip install spartera-api-sdk - Import:
from spartera_api_sdk import ApiClient
- Build:
python setup.py sdist bdist_wheel - Upload:
twine upload dist/* - Install:
pip install spartera-api-sdk