Skip to main content

A package to access the WattTime API v2

Project description

WattTime API v2 - Easy to Use Model

Creating an easier way to interact with WattTime API v2 ( The API documentation is at: and the Watttime organization is really cool, so check them out at

Written in Python 3.7, should work with 3.6+

On PyPI pip install watttime

To use:

If you already have a username and password registered with the API v2, then no need to register again. If you do not, follow these steps:

from watttime.api import WattTime

w = WattTime(username=<DesiredUsername>, password=<YourDesiredPassword>)
w.register(email=<>, organization=<your organization>)

console output:

{'user': '<DesiredUsername>', 'ok': 'User created'}

If you need to reset your password:


console output:

{'ok': 'Please check your email for the password reset link'}

Before you do any work, you must request a token:


console output:

{'token': 'crazy_hash'}
Token received, setting headers: crazy_hash

Now you're ready to get your realtime emissions!!!

If you want to use latitude and longitude, pass them into your function explicitly

data = w.get_realtime_emissions(latitude=37.871667, longitude=-122.272778)

console output:

No balancing authority passed, getting data for
{'id': 137, 'abbrev': 'CAISO_NP15', 'name': 'CAISO NP15 Trading Hub'}
Setting balancing_authority: CAISO_NP15
Getting data for balancing authority: CAISO_NP15
URL requested =
{'validUntil': '2019-10-02T21:45:00Z', 'pointTime': '2019-10-02T21:40:00Z', 'freq': '300', 'market': 'RTM', 'ba': 'CAISO_NP15', 'rating': '4', 'switch': '0', 'percent': '64', 'point_time': '2019-10-02T21:40:00Z', 'validFor': 175}

your data variable output in console:

{'validUntil': '2019-10-02T21:45:00Z',
 'pointTime': '2019-10-02T21:40:00Z',
 'freq': '300',
 'market': 'RTM',
 'ba': 'CAISO_NP15',
 'rating': '4',
 'switch': '0',
 'percent': '64',
 'point_time': '2019-10-02T21:40:00Z',
 'validFor': 175}

If you prefer to pass in a balancing authority, you may do so explicitly as well. Note: anything you pass as ba will overwrite and set your instance balancing_authority to whatever you pass and that will be used by default until you change it.


If you need to find a balancing authority (because you can't overwrite by using latitude and longitude alone, use the get_balancing_authority function in order to override it.

w.get_balancing_authority(latitude=37.871667, longitude=-122.272778)

Then you may proceed as normal!

To run tests, in console run:


Project details

Download files

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

Files for watttime, version 0.0.5
Filename, size File type Python version Upload date Hashes
Filename, size watttime-0.0.5-py3-none-any.whl (18.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size watttime-0.0.5.tar.gz (5.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page