This package is generated by @typespec/http-client-python with Typespec.
- Python 3.9 or later is required to use this package.
The Python SDK is in preview mode.
pip install --pre openmeter # or using an exact version pip install openmeter==1.0.0bXXXfrom openmeter import Client client = Client( endpoint="https://openmeter.cloud", token="your-api-token", )from openmeter.aio import Client client = Client( endpoint="https://openmeter.cloud", token="your-api-token", )import datetime import uuid from openmeter.models import Event # Create an Event instance (following CloudEvents specification) event = Event( id=str(uuid.uuid4()), source="my-app", specversion="1.0", type="prompt", subject="customer-1", time=datetime.datetime.now(datetime.timezone.utc), data={ "tokens": 100, "model": "gpt-4o", "type": "input", }, ) # Ingest the event client.events.ingest_event(event)import datetime import uuid import asyncio from openmeter.aio import Client from openmeter.models import Event async def main(): async with Client( endpoint="https://openmeter.cloud", token="your-api-token", ) as client: # Create an Event instance (following CloudEvents specification) event = Event( id=str(uuid.uuid4()), source="my-app", specversion="1.0", type="prompt", subject="customer-1", time=datetime.datetime.now(datetime.timezone.utc), data={ "tokens": 100, "model": "gpt-4o", "type": "input", }, ) # Ingest the event await client.events.ingest_event(event) asyncio.run(main())from openmeter.models import MeterQueryResult # Query total values r: MeterQueryResult = client.meters.query_json(meter_id_or_slug="tokens_total") print("Query total values:", r.data[0].value)import asyncio from openmeter.aio import Client from openmeter.models import MeterQueryResult async def main(): async with Client( endpoint="https://openmeter.cloud", token="your-api-token", ) as client: # Query total values r: MeterQueryResult = await client.meters.query_json( meter_id_or_slug="tokens_total" ) print("Query total values:", r.data[0].value) asyncio.run(main())The OpenMeter Python SDK provides a comprehensive client interface organized into logical operation groups. Below is a complete reference of all available methods.
| Namespace | Operation | Method | Description |
|---|---|---|---|
| Events | Track usage by ingesting events | ||
| Create | client.events.ingest_event(event) | Ingest a single event | |
| Create | client.events.ingest_events(events) | Ingest batch of events | |
| Create | client.events.ingest_events_json(events_json) | Ingest events from JSON | |
| Read | client.events.list(**kwargs) | List ingested events with filtering | |
| Read | client.events_v2.list(**kwargs) | List ingested events with advanced filtering (V2) | |
| Meters | Track and aggregate usage data from events | ||
| Create | client.meters.create(meter) | Create a new meter | |
| Read | client.meters.get(meter_id_or_slug) | Get a meter by ID or slug | |
| Read | client.meters.list(**kwargs) | List all meters | |
| Read | client.meters.query_json(meter_id_or_slug, **kwargs) | Query usage data in JSON format | |
| Read | client.meters.query_csv(meter_id_or_slug, **kwargs) | Query usage data in CSV format | |
| Read | client.meters.query(meter_id_or_slug, **kwargs) | Query usage data | |
| Read | client.meters.list_subjects(meter_id_or_slug, **kwargs) | List subjects for a meter | |
| Read | client.meters.list_group_by_values(meter_id_or_slug, **kwargs) | List group-by values for a meter | |
| Update | client.meters.update(meter_id_or_slug, meter) | Update a meter by ID or slug | |
| Delete | client.meters.delete(meter_id_or_slug) | Delete a meter by ID or slug | |
| Subjects | Manage entities that consume resources | ||
| Create | client.subjects.upsert(subjects) | Create or update one or multiple subjects | |
| Read | client.subjects.get(subject_id_or_key) | Get a subject by ID or key | |
| Read | client.subjects.list() | List all subjects | |
| Delete | client.subjects.delete(subject_id_or_key) | Delete a subject by ID or key | |
| Customers | Manage customer information and lifecycles | ||
| Create | client.customers.create(customer) | Create a new customer | |
| Read | client.customers.get(customer_id_or_key, **kwargs) | Get a customer by ID or key | |
| Read | client.customers.list(**kwargs) | List all customers | |
| Read | client.customers.list_customer_subscriptions(customer_id_or_key, **kwargs) | List customer subscriptions | |
| Update | client.customers.update(customer_id_or_key, customer) | Update a customer | |
| Delete | client.customers.delete(customer_id_or_key) | Delete a customer | |
| Customer (Single) | Customer-specific operations | ||
| Read | client.customer.get_customer_access(customer_id_or_key) | Get customer access information | |
| Customer Apps | Manage customer app integrations | ||
| Read | client.customer_apps.list_app_data(customer_id_or_key, **kwargs) | List app data for a customer | |
| Update | client.customer_apps.upsert_app_data(customer_id_or_key, app_data) | Upsert app data for a customer | |
| Delete | client.customer_apps.delete_app_data(customer_id_or_key, app_id) | Delete app data for a customer | |
| Customer Stripe | Manage Stripe integration for customers | ||
| Read | client.customer_stripe.get(customer_id_or_key) | Get Stripe customer data | |
| Update | client.customer_stripe.upsert(customer_id_or_key, data) | Upsert Stripe customer data | |
| Create | client.customer_stripe.create_portal_session(customer_id_or_key, **kwargs) | Create a Stripe customer portal session | |
| Customer Entitlement | Single customer entitlement operations | ||
| Read | client.customer_entitlement.get_customer_entitlement_value(customer_id_or_key, **kwargs) | Get customer entitlement value | |
| Customer Overrides | Manage customer-specific pricing overrides | ||
| Read | client.customer_overrides.list(customer_id_or_key) | List customer overrides | |
| Read | client.customer_overrides.get(customer_id_or_key, override_id) | Get a customer override | |
| Update | client.customer_overrides.upsert(customer_id_or_key, override) | Upsert a customer override | |
| Delete | client.customer_overrides.delete(customer_id_or_key, override_id) | Delete a customer override | |
| Features | Define application capabilities and services | ||
| Create | client.features.create(feature) | Create a new feature | |
| Read | client.features.get(feature_id) | Get a feature by ID | |
| Read | client.features.list(**kwargs) | List all features | |
| Delete | client.features.delete(feature_id) | Delete a feature by ID | |
| Plans | Manage subscription plans and pricing | ||
| Create | client.plans.create(request) | Create a new plan | |
| Read | client.plans.get(plan_id, **kwargs) | Get a plan by ID | |
| Read | client.plans.list(**kwargs) | List all plans | |
| Update | client.plans.update(plan_id, body) | Update a plan | |
| Delete | client.plans.delete(plan_id) | Delete a plan by ID | |
| Other | client.plans.publish(plan_id) | Publish a plan | |
| Other | client.plans.archive(plan_id) | Archive a plan version | |
| Other | client.plans.next(plan_id_or_key) | Create new draft plan version | |
| Plan Addons | Manage addons assigned to plans | ||
| Create | client.plan_addons.create(plan_id, body) | Create addon assignment for plan | |
| Read | client.plan_addons.get(plan_id, plan_addon_id) | Get addon assignment for plan | |
| Read | client.plan_addons.list(plan_id, **kwargs) | List addon assignments for plan | |
| Update | client.plan_addons.update(plan_id, plan_addon_id, body) | Update addon assignment for plan | |
| Delete | client.plan_addons.delete(plan_id, plan_addon_id) | Delete addon assignment for plan | |
| Addons | Manage standalone addons available across plans | ||
| Create | client.addons.create(request) | Create a new addon | |
| Read | client.addons.get(addon_id, **kwargs) | Get an addon by ID | |
| Read | client.addons.list(**kwargs) | List all addons | |
| Update | client.addons.update(addon_id, request) | Update an addon | |
| Delete | client.addons.delete(addon_id) | Delete an addon by ID | |
| Other | client.addons.publish(addon_id) | Publish an addon | |
| Other | client.addons.archive(addon_id) | Archive an addon | |
| Subscriptions | Manage customer subscriptions | ||
| Create | client.subscriptions.create(body) | Create a new subscription | |
| Read | client.subscriptions.get_expanded(subscription_id, **kwargs) | Get a subscription with expanded details | |
| Update | client.subscriptions.edit(subscription_id, body) | Edit a subscription | |
| Update | client.subscriptions.change(subscription_id, body) | Change a subscription | |
| Update | client.subscriptions.migrate(subscription_id, body) | Migrate subscription to a new plan version | |
| Update | client.subscriptions.restore(subscription_id) | Restore a canceled subscription | |
| Delete | client.subscriptions.cancel(subscription_id, body) | Cancel a subscription | |
| Delete | client.subscriptions.delete(subscription_id) | Delete a subscription | |
| Other | client.subscriptions.unschedule_cancelation(subscription_id) | Unschedule a subscription cancelation | |
| Subscription Addons | Manage addons on subscriptions | ||
| Create | client.subscription_addons.create(subscription_id, body) | Add an addon to a subscription | |
| Read | client.subscription_addons.get(subscription_id, subscription_addon_id) | Get a subscription addon | |
| Read | client.subscription_addons.list(subscription_id, **kwargs) | List addons on a subscription | |
| Update | client.subscription_addons.update(subscription_id, subscription_addon_id, body) | Update a subscription addon | |
| Entitlements | Admin entitlements management | ||
| Read | client.entitlements.list(**kwargs) | List all entitlements (admin) | |
| Read | client.entitlements.get(entitlement_id) | Get an entitlement by ID | |
| Entitlements V2 | V2 Admin entitlements management | ||
| Read | client.entitlements_v2.list(**kwargs) | List all entitlements V2 (admin) | |
| Read | client.entitlements_v2.get(entitlement_id_or_feature_key, **kwargs) | Get an entitlement V2 by ID or feature key | |
| Customer Entitlements V2 | Manage customer entitlements (V2) | ||
| Create | client.customer_entitlements_v2.post(customer_id_or_key, body) | Create a customer entitlement | |
| Read | client.customer_entitlements_v2.list(customer_id_or_key, **kwargs) | List customer entitlements | |
| Read | client.customer_entitlements_v2.get(customer_id_or_key, entitlement_id_or_feature_key) | Get a customer entitlement | |
| Delete | client.customer_entitlements_v2.delete(customer_id_or_key, entitlement_id) | Delete a customer entitlement | |
| Update | client.customer_entitlements_v2.override(customer_id_or_key, entitlement_id_or_feature_key, override) | Override a customer entitlement | |
| Customer Entitlement V2 | Single customer entitlement operations (V2) | ||
| Read | client.customer_entitlement_v2.get_grants(customer_id_or_key, entitlement_id_or_feature_key, **kwargs) | List grants for a customer entitlement | |
| Read | client.customer_entitlement_v2.get_customer_entitlement_value(customer_id_or_key, entitlement_id_or_feature_key, **kwargs) | Get customer entitlement value | |
| Read | client.customer_entitlement_v2.get_customer_entitlement_history(customer_id_or_key, entitlement_id_or_feature_key, **kwargs) | Get customer entitlement history | |
| Create | client.customer_entitlement_v2.create_customer_entitlement_grant(customer_id_or_key, entitlement_id_or_feature_key, grant) | Create a grant for customer entitlement | |
| Update | client.customer_entitlement_v2.reset_customer_entitlement(customer_id_or_key, entitlement_id, **kwargs) | Reset customer entitlement usage | |
| Grants | Admin grants management | ||
| Read | client.grants.list(**kwargs) | List all grants (admin) | |
| Delete | client.grants.delete(grant_id) | Delete (void) a grant | |
| Grants V2 | V2 Admin grants management | ||
| Read | client.grants_v2.list(**kwargs) | List all grants V2 (admin) | |
| Billing Profiles | Manage billing profiles | ||
| Create | client.billing_profiles.create(profile) | Create a billing profile | |
| Read | client.billing_profiles.get(id) | Get a billing profile by ID | |
| Read | client.billing_profiles.list(**kwargs) | List billing profiles | |
| Update | client.billing_profiles.update(id, profile) | Update a billing profile | |
| Delete | client.billing_profiles.delete(id) | Delete a billing profile | |
| Invoices | Manage invoices | ||
| Read | client.invoices.list(**kwargs) | List invoices | |
| Other | client.invoices.invoice_pending_lines_action(customer_id, **kwargs) | Invoice pending lines for customer | |
| Invoice | Single invoice operations | ||
| Read | client.invoice.get_invoice(id, **kwargs) | Get an invoice by ID | |
| Update | client.invoice.update_invoice(id, invoice) | Update an invoice | |
| Delete | client.invoice.delete_invoice(id) | Delete an invoice | |
| Other | client.invoice.advance_action(id) | Advance invoice to next status | |
| Other | client.invoice.approve_action(id) | Approve an invoice | |
| Other | client.invoice.retry_action(id, body) | Retry advancing invoice after failure | |
| Other | client.invoice.void_invoice_action(id) | Void an invoice | |
| Other | client.invoice.recalculate_tax_action(id) | Recalculate invoice tax amounts | |
| Other | client.invoice.snapshot_quantities_action(id) | Snapshot invoice quantities | |
| Customer Invoice | Customer-specific invoice operations | ||
| Create | client.customer_invoice.create_pending_invoice_line(customer_id, body) | Create pending invoice line for customer | |
| Other | client.customer_invoice.simulate_invoice(customer_id, **kwargs) | Simulate an invoice for a customer | |
| Apps | Manage integrations and app installations | ||
| Read | client.apps.list(**kwargs) | List installed apps | |
| Read | client.apps.get(id) | Get an app by ID | |
| Update | client.apps.update(id, app) | Update an app | |
| Delete | client.apps.uninstall(id) | Uninstall an app | |
| App Stripe | Stripe app integration | ||
| Create | client.app_stripe.webhook(id, body) | Handle Stripe webhook event | |
| Update | client.app_stripe.update_stripe_api_key(id, request) | Update Stripe API key | |
| Create | client.app_stripe.create_checkout_session(body) | Create Stripe checkout session | |
| App Custom Invoicing | Custom invoicing app integration | ||
| Other | client.app_custom_invoicing.draft_syncronized(id, invoice_number, **kwargs) | Notify when draft invoice synchronized | |
| Other | client.app_custom_invoicing.finalized(id, invoice_number, **kwargs) | Notify when invoice finalized | |
| Other | client.app_custom_invoicing.payment_status(id, invoice_number, body) | Update invoice payment status | |
| Marketplace | App marketplace operations | ||
| Read | client.marketplace.list(**kwargs) | List marketplace apps | |
| Read | client.marketplace.get(app_type) | Get marketplace app | |
| Read | client.marketplace.get_o_auth2_install_url(app_type, **kwargs) | Get OAuth2 install URL | |
| Create | client.marketplace.authorize_o_auth2_install(app_type, **kwargs) | Authorize OAuth2 installation | |
| Create | client.marketplace.install_with_api_key(app_type, body) | Install app with API key | |
| Create | client.marketplace.install(app_type, body) | Install marketplace app | |
| Notification Channels | Manage notification channels | ||
| Create | client.notification_channels.create(channel) | Create a notification channel | |
| Read | client.notification_channels.get(channel_id) | Get a notification channel by ID | |
| Read | client.notification_channels.list(**kwargs) | List notification channels | |
| Update | client.notification_channels.update(channel_id, channel) | Update a notification channel | |
| Delete | client.notification_channels.delete(channel_id) | Delete a notification channel | |
| Notification Rules | Manage notification rules | ||
| Create | client.notification_rules.create(rule) | Create a notification rule | |
| Read | client.notification_rules.get(rule_id) | Get a notification rule by ID | |
| Read | client.notification_rules.list(**kwargs) | List notification rules | |
| Update | client.notification_rules.update(rule_id, rule) | Update a notification rule | |
| Delete | client.notification_rules.delete(rule_id) | Delete a notification rule | |
| Other | client.notification_rules.test(rule_id) | Test a notification rule | |
| Notification Events | View notification events | ||
| Read | client.notification_events.get(event_id) | Get a notification event by ID | |
| Read | client.notification_events.list(**kwargs) | List notification events | |
| Progress | Track long-running operations | ||
| Read | client.progress.get_progress(id) | Get progress of a long-running operation | |
| Currencies | Currency information | ||
| Read | client.currencies.list_currencies() | List all supported currencies | |
| Debug | Debug utilities for monitoring and troubleshooting | ||
| Read | client.debug.metrics() | Get event ingestion metrics |