Skip to main content

EPİAŞ (Turkish Electricity Market) transparency platform data API client

Project description

pyepias

UNOFFICIAL LIBRARY - NOT AFFILIATED WITH EPİAŞ

This is an UNOFFICIAL third-party library and is NOT officially associated with EPİAŞ (Enerji Piyasaları İşletme A.Ş.). Use at your own risk.

A Python client library for accessing EPİAŞ (Turkish Electricity Market) transparency platform data.

Overview

pyepias provides a simple and intuitive interface to fetch electricity market data from the EPİAŞ (Enerji Piyasaları İşletme A.Ş.) transparency platform. This library handles authentication and data retrieval, making it easy to access market clearing prices and other electricity market data.

Features

  • Automatic authentication with EPİAŞ platform
  • Fetch Market Clearing Price (MCP) data
  • Support for multiple time periods (today, week, month, custom range)
  • Built-in statistical analysis
  • Pandas DataFrame integration
  • JSON export support

Installation

From PyPI (when published)

pip install pyepias

From source

git clone https://github.com/hasancagrigungor/pyepias.git
cd pyepias
pip install -e .

Install dependencies only

pip install -r requirements.txt

Quick Start

from pyepias import EpiasClient

# Initialize the client with your EPİAŞ credentials
client = EpiasClient("your@email.com", "your_password")

# Get today's market clearing prices
data = client.download(period="today")
print(data)

Usage Examples

Get data for different time periods

from pyepias import EpiasClient

client = EpiasClient("your@email.com", "your_password")

# Today's data
today_data = client.download(period="today")

# Last week's data
week_data = client.download(period="week")

# Last month's data
month_data = client.download(period="month")

Custom date range

from datetime import datetime
from pyepias import EpiasClient

client = EpiasClient("your@email.com", "your_password")

# Define custom date range
start_date = datetime(2024, 1, 1)
end_date = datetime(2024, 1, 10)

# Get data for custom range
data = client.download(period=(start_date, end_date))

Get JSON output instead of DataFrame

from pyepias import EpiasClient

client = EpiasClient("your@email.com", "your_password")

# Get data as JSON string
json_data = client.download(
    period="today",
    output_format="json"
)
print(json_data)

Get statistical summary

from pyepias import EpiasClient

client = EpiasClient("your@email.com", "your_password")

# Get statistics for the last week
stats = client.stats(period="week")

print(f"Average Price (TL): {stats['mean_price_tl']:.2f}")
print(f"Min Price (TL): {stats['min_price_tl']:.2f}")
print(f"Max Price (TL): {stats['max_price_tl']:.2f}")
print(f"Total Records: {stats['total_records']}")

Data analysis with pandas

from pyepias import EpiasClient
import matplotlib.pyplot as plt

client = EpiasClient("your@email.com", "your_password")

# Get last month's data
df = client.download(period="month")

# Analyze the data
print(df.describe())

# Plot the data
df.plot(x='date', y='price', kind='line', title='Market Clearing Prices')
plt.ylabel('Price (TL/MWh)')
plt.show()

API Reference

EpiasClient

Main client class for interacting with EPİAŞ transparency platform.

Constructor

EpiasClient(email: str, password: str)

Parameters:

  • email (str): Your EPİAŞ account email
  • password (str): Your EPİAŞ account password

Methods

download()
download(
    period: Union[str, Tuple[datetime, datetime]] = "today",
    output_format: str = "dataframe"
) -> Union[pd.DataFrame, str, None]

Download Market Clearing Price (MCP) data.

Parameters:

  • period: Time period for data retrieval
    • "today": Today's data
    • "week": Last 7 days
    • "month": Last 30 days
    • (start_date, end_date): Custom date range as tuple of datetime objects
  • output_format: Output format - "dataframe" or "json"

Returns:

  • pd.DataFrame, str, or None: Market data in requested format
stats()
stats(
    period: Union[str, Tuple[datetime, datetime]] = "today"
) -> Optional[Dict[str, float]]

Get statistical summary of market clearing prices.

Parameters:

  • period: Time period (same as download)

Returns:

  • dict: Dictionary containing statistical measures:
    • mean_price_tl: Average price in TL
    • min_price_tl: Minimum price in TL
    • max_price_tl: Maximum price in TL
    • median_price_tl: Median price in TL
    • std_price_tl: Standard deviation of price in TL
    • total_records: Number of records
    • mean_price_eur: Average price in EUR (if available)
    • mean_price_usd: Average price in USD (if available)

Requirements

  • Python >= 3.7
  • requests >= 2.25.0
  • pandas >= 1.2.0

About EPİAŞ

EPİAŞ (Enerji Piyasaları İşletme A.Ş.) is the operator of Turkish electricity markets. The transparency platform provides public access to various electricity market data including market clearing prices, production data, consumption data, and more.

Note: You need to register on the EPİAŞ Transparency Platform to obtain credentials for using this library.

Author

Hasan Çağrı Güngör

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Disclaimer

This library is not officially associated with EPİAŞ. Use at your own risk and make sure to comply with EPİAŞ terms of service.

Changelog

v0.1.3 (Latest)

  • Added prominent UNOFFICIAL disclaimer at the top

v0.1.2

  • Removed emojis from documentation

v0.1.1

  • Updated GitHub repository URL
  • Updated homepage URL

v0.1.0 (Initial Release)

  • Basic client implementation
  • Market Clearing Price (MCP) data retrieval
  • Support for multiple time periods
  • Statistical analysis features
  • JSON and DataFrame output formats

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

pyepias-0.1.3.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

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

pyepias-0.1.3-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file pyepias-0.1.3.tar.gz.

File metadata

  • Download URL: pyepias-0.1.3.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for pyepias-0.1.3.tar.gz
Algorithm Hash digest
SHA256 66b0874fac30f5a9b69a24da363e9086d7cd1dd7e0d02b7eeb83aa9270e062b7
MD5 d43db25e041645c33904c9adacebdc09
BLAKE2b-256 de9f11fc133c411feb6caea8fbca848ea2126efed158411075f0a39629ee7a2b

See more details on using hashes here.

File details

Details for the file pyepias-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pyepias-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for pyepias-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ad7e13fed2f9718e4bbff2eadcee40bc87039538d5bc1e0dad837b6b8a367594
MD5 68b169f6c37aec732286990aa271d8f3
BLAKE2b-256 9c6e57a0a5609b4fc80dd356ab46544a11988fc08d9ba05a737485eb034619d4

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