{"id":13561912,"url":"https://github.com/openmeterio/openmeter","last_synced_at":"2026-04-09T14:01:55.366Z","repository":{"id":173176677,"uuid":"650344440","full_name":"openmeterio/openmeter","owner":"openmeterio","description":"Metering and Billing for AI, API and DevOps. Collect and aggregate millions of usage events in real-time and enable usage-based billing.","archived":false,"fork":false,"pushed_at":"2025-04-01T13:10:43.000Z","size":34322,"stargazers_count":1300,"open_issues_count":56,"forks_count":74,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-01T13:26:49.249Z","etag":null,"topics":["analytics","billing","clickhouse","cost","finops","fintech","golang","kafka","metering","payment","pricing","stripe","usage","usage-based-billing","usage-based-pricing"],"latest_commit_sha":null,"homepage":"https://openmeter.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openmeterio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-06T21:50:55.000Z","updated_at":"2025-04-01T13:10:46.000Z","dependencies_parsed_at":"2024-01-02T13:24:02.797Z","dependency_job_id":"e5dbb297-09d9-4a83-91b4-90dd1b1abcc9","html_url":"https://github.com/openmeterio/openmeter","commit_stats":null,"previous_names":["openmeterio/openmeter"],"tags_count":221,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmeterio%2Fopenmeter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmeterio%2Fopenmeter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmeterio%2Fopenmeter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmeterio%2Fopenmeter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmeterio","download_url":"https://codeload.github.com/openmeterio/openmeter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247047116,"owners_count":20874771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","billing","clickhouse","cost","finops","fintech","golang","kafka","metering","payment","pricing","stripe","usage","usage-based-billing","usage-based-pricing"],"created_at":"2024-08-01T13:01:02.489Z","updated_at":"2026-04-09T14:01:55.353Z","avatar_url":"https://github.com/openmeterio.png","language":"Go","readme":"\u003cdiv align=\"center\"\u003e\n\n![OpenMeter logo](assets/logo.png)\n\n# OpenMeter\n\nThe open-source metering and billing platform\nfor AI, agentic and DevTool monetization.\n\n[Docs](https://openmeter.io/docs) |\n[Hosted](https://cloud.konghq.com/register?utm_campaign=metering_and_billing) |\n[Blog](https://openmeter.io/blog) |\n[Contributing](CONTRIBUTING.md)\n\n[![GitHub Release](https://img.shields.io/github/v/release/openmeterio/openmeter?style=flat-square)](https://github.com/openmeterio/openmeter/releases/latest)\n[![CI Status](https://img.shields.io/github/actions/workflow/status/openmeterio/openmeter/ci.yaml?style=flat-square)](https://github.com/openmeterio/openmeter/actions/workflows/ci.yaml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/openmeterio/openmeter?style=flat-square)](https://goreportcard.com/report/github.com/openmeterio/openmeter)\n![GitHub Stars](https://img.shields.io/github/stars/openmeterio/openmeter?style=flat-square)\n\n\u003c/div\u003e\n\n---\n\nOpenMeter is a real-time metering and billing engine that\nhelps you track usage, enforce limits, manage subscriptions,\nand automate invoicing — all in one platform. Ingest events\nvia a simple API, define meters with flexible aggregations,\nand connect usage data to billing, entitlements, and\ncustomer-facing dashboards.\n\n## Features\n\n- **Usage Metering** — Ingest events in\n  [CloudEvents](https://cloudevents.io) format, define meters\n  with flexible aggregations (SUM, COUNT, AVG, MIN, MAX),\n  and query usage in real time.\n- **Usage-Based Billing** — Generate invoices from metered\n  usage. Supports tiered, graduated, and flat-fee pricing\n  with automated invoice lifecycle management.\n- **Usage Limits and Entitlements** — Enforce usage quotas\n  per feature with real-time balance tracking, boolean\n  feature flags, and grace periods.\n- **Product Catalog** — Define plans, add-ons, features, and\n  rate cards. Manage subscriptions with mid-cycle changes,\n  prorating, and alignment.\n- **Prepaid Credits** — Support paid or promotional credit grants\n  with priority-based burn-down and expiration.\n- **Customer Portal** — Token-based self-service dashboards\n  so your customers can see their own usage.\n- **Notifications** — Webhook-based alerts with configurable\n  rules and channels for usage thresholds and billing events.\n- **LLM Cost Tracking** — First-class support for metering\n  AI token usage and computing model-specific costs.\n\n## Getting Started\n\n### Cloud\n\nThe fastest way to start.\n[Start for free](https://cloud.konghq.com/register?utm_campaign=metering_and_billing)\nand begin metering and billing in minutes —\nno infrastructure to manage.\n\n### Self-Hosted\n\nRun OpenMeter locally with Docker Compose:\n\n```sh\ngit clone git@github.com:openmeterio/openmeter.git\ncd openmeter/quickstart\ndocker compose up -d\n```\n\nThen ingest your first event:\n\n```sh\ncurl -X POST http://localhost:48888/api/v1/events \\\n  -H 'Content-Type: application/cloudevents+json' \\\n  --data-raw '{\n    \"specversion\": \"1.0\",\n    \"type\": \"request\",\n    \"id\": \"00001\",\n    \"time\": \"2024-01-01T00:00:00.001Z\",\n    \"source\": \"my-service\",\n    \"subject\": \"customer-1\",\n    \"data\": { \"method\": \"GET\", \"route\": \"/api/hello\" }\n  }'\n```\n\nQuery your usage:\n\n```sh\ncurl 'http://localhost:48888/api/v1/meters/api_requests_total/query?windowSize=HOUR' | jq\n```\n\nSee the full [quickstart guide](/quickstart) for more details.\n\n### Deploy to Production\n\nDeploy to Kubernetes using our\n[Helm chart](https://openmeter.io/docs/deploy/kubernetes).\n\n## SDKs\n\n| Language             | Package                                                                        | Source                                             |\n|----------------------|--------------------------------------------------------------------------------|----------------------------------------------------|\n| Go                   | [openmeter](https://pkg.go.dev/github.com/openmeterio/openmeter/api/client/go) | [api/client/go](/api/client/go)                    |\n| JavaScript / Node.js | [@openmeter/sdk](https://www.npmjs.com/package/@openmeter/sdk)                 | [api/client/javascript](/api/client/javascript)    |\n| Python               | [openmeter](https://pypi.org/project/openmeter)                                | [api/client/python](/api/client/python)            |\n\nDon't see your language? Use the\n[OpenAPI spec](https://github.com/openmeterio/openmeter/blob/main/api/openapi.yaml)\ndirectly or\n[request an SDK](https://github.com/openmeterio/openmeter/issues/new?assignees=\u0026labels=area%2Fapi%2Ckind%2Ffeature\u0026projects=\u0026template=feature_request.yaml).\n\n## Architecture\n\nOpenMeter is built in Go with a stack optimized for\nhigh-volume event ingestion and real-time aggregation:\n\n| Component                | Role                                                     |\n|--------------------------|----------------------------------------------------------|\n| **PostgreSQL** (Ent ORM) | Billing, subscriptions, entitlements, product catalog    |\n| **ClickHouse**           | Real-time usage aggregation and analytics                |\n| **Kafka**                | Event streaming and ingestion pipeline                   |\n| **TypeSpec**             | API-first design — OpenAPI spec and SDKs from TypeSpec   |\n\n## Community\n\nWe'd love to have you involved:\n\n- **[Contributing](CONTRIBUTING.md)** — Start here if you\n  want to contribute code.\n- **[Code of Conduct](CODE_OF_CONDUCT.md)** — Our community\n  guidelines.\n- **[Blog](https://openmeter.io/blog)** — Product updates\n  and engineering deep dives.\n\n## Development\n\nPrerequisites: [Nix](https://nixos.org/download.html) and\n[direnv](https://direnv.net/docs/installation.html) are\nrecommended. See [CONTRIBUTING.md](CONTRIBUTING.md) for\ndetailed setup instructions.\n\n```sh\nmake up       # Start dependencies (Postgres, Kafka, ClickHouse)\nmake server   # Run the API server with hot reload\nmake test     # Run tests\nmake lint     # Run linters\n```\n\n## License\n\nLicensed under [Apache 2.0](LICENSE).\n\n[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B38090%2Fgithub.com%2Fopenmeterio%2Fopenmeter.svg?type=large)](https://app.fossa.com/projects/custom%2B38090%2Fgithub.com%2Fopenmeterio%2Fopenmeter?ref=badge_large)\n","funding_links":[],"categories":["Go","Usage-based pricing","Integrations"],"sub_categories":["Load, stress \u0026 soak testing","Metrics and Monitoring"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmeterio%2Fopenmeter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmeterio%2Fopenmeter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmeterio%2Fopenmeter/lists"}