Skip to main content

Simple Library for OpenAI Usage

Project description

openai-usage

PyPI Tests Docs License: MIT

One usage model for every OpenAI API.

The OpenAI Python SDK reports usage in a different shape for almost every endpoint — Chat Completions, Responses, Agents SDK, Realtime, Batch, Embeddings, Images, Transcription. openai-usage collapses them all into a single, additive Usage object and estimates what it costs against live model pricing. Gemini and LiteLLM usage are supported too, behind optional extras.

📖 Full documentation: https://allen2c.github.io/openai-usage/

Installation

pip install openai-usage

Requires Python 3.11+.

Quickstart

from openai_usage import Usage

# Normalize usage from any OpenAI API into one shape
total = Usage()
total.add(Usage.from_openai(chat_completion.usage))          # Chat Completions
total.add(Usage.from_openai(response.usage))                 # Responses API
total.add(Usage.from_openai(realtime_event.response.usage))  # Realtime

print(total.input_tokens, total.output_tokens, total.total_tokens)

# Estimate the cost against any model
print(f"${total.estimate_cost('gpt-4o'):.6f}")

What it does

  • UnifyUsage.from_openai(...) accepts Chat Completions, Responses, Agents SDK, Realtime, Batch, Embeddings, Images, Transcription, and Assistants run usage — plus Gemini and LiteLLM usage via optional extras.
  • AggregateUsage.add() accumulates requests, tokens, and per-modality detail (cached, cache-write, reasoning, audio, image, video, text) across calls.
  • EstimateUsage.estimate_cost() prices usage against any model using LiteLLM and OpenRouter pricing, with separate rates for cached, cache-write, reasoning, audio, image, and duration-billed usage.
  • SerializeUsage is a Pydantic model with full backward compatibility for older payloads.

See the Supported Usage Types table for the full compatibility matrix, and Estimating Costs for pricing details and limitations.

Documentation

The docs are built with Material for MkDocs and deployed to GitHub Pages on every push to main.

make mkdocs        # serve locally at http://localhost:8000

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openai_usage-0.10.0.tar.gz (86.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openai_usage-0.10.0-py3-none-any.whl (92.9 kB view details)

Uploaded Python 3

File details

Details for the file openai_usage-0.10.0.tar.gz.

File metadata

  • Download URL: openai_usage-0.10.0.tar.gz
  • Upload date:
  • Size: 86.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.12.13 Darwin/25.5.0

File hashes

Hashes for openai_usage-0.10.0.tar.gz
Algorithm Hash digest
SHA256 089be5527f9e78a9c4783f1a021c57526c91bd51af2173eabe2a767b17d1171c
MD5 86d156c763a24b2692d43ae26cc5ac6c
BLAKE2b-256 c4856d1a3eb41cc3ed373b3dd7202d6bc9f0c7160d2b2d167bfaee935b3484c2

See more details on using hashes here.

File details

Details for the file openai_usage-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: openai_usage-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 92.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.12.13 Darwin/25.5.0

File hashes

Hashes for openai_usage-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b3b717e275b8b8026c3ba393eedc73040af8798b33fb627af7127816f2068e9
MD5 957af7cde990d62c6aa6461065f7f38a
BLAKE2b-256 42f51122e82c0a01227db8cccb6deed2cb2990eb0801cda36b6ef5479df1308e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page