API Documentation
Integrate with PACK Energy to access solar system data, energy readings, market prices, and more.
Getting Started
The PACK Energy API gives you programmatic access to your solar energy systems, readings, market prices, declarations, and reports. Follow these three steps to get started:
Create an API key
Navigate to Settings → API in your PACK Energy dashboard and generate a new API key. Store it securely — you won't be able to see it again.
Authenticate your requests
Include your API key in the Authorization header of every request.
Make your first request
All responses are in JSON. Timestamps use UTC (ISO 8601). Pagination is offset-based with page and limit parameters.
curl -H "Authorization: Bearer pk_live_..." \
https://packenergy.io/api/v1/systemsBase URL: https://packenergy.io/api/v1 — All endpoint paths are relative to this base URL.
Authentication
The PACK Energy API uses Bearer token authentication. Include your API key in the Authorization header of every request.
Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxxAPI Key Prefixes
| Prefix | Environment | Description |
|---|---|---|
pk_live_ | Production | Live API key for production use |
pk_test_ | Sandbox | Test key with simulated data |
API Access by Plan
| Plan | API Access | Scope |
|---|---|---|
| Starter | No API | — |
| Pro | Basic | Systems, Readings, Market Prices (read-only) |
| Enterprise | Full | All endpoints including Declarations and Reports |
Rate Limits
Rate limits are enforced per API key and vary by plan. When you exceed the limit, the API returns a 429 status code with a Retry-After header.
| Plan | Per Minute | Per Day |
|---|---|---|
| Pro | 60 | 10,000 |
| Enterprise | 300 | 100,000 |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Endpoints
All endpoints use the base URL https://packenergy.io/api/v1. Authentication is required for all endpoints except /health.
Systems
Readings
Market Prices
Declarations
Reports
Health
Error Codes
All error responses follow a consistent format with an error message and a machine-readable code.
{
"error": "Invalid API key provided.",
"code": "unauthorized"
}| Code | HTTP Status | Description |
|---|---|---|
unauthorized | 401 | Missing or invalid API key |
forbidden | 403 | Insufficient scope for this operation |
rate_limit | 429 | Rate limit exceeded. Check Retry-After header |
not_found | 404 | Resource not found |
validation | 400 | Invalid request parameters or body |
server_error | 500 | Internal server error. Contact support if persistent |
Code Examples
Quick examples for common languages. Replace pk_live_... with your actual API key.
curl -H "Authorization: Bearer pk_live_..." \
https://packenergy.io/api/v1/systemscurl -H "Authorization: Bearer pk_live_..." \
"https://packenergy.io/api/v1/systems/{id}/readings?from=2025-01-01T00:00:00Z&to=2025-01-02T00:00:00Z&interval=1h"Interactive Playground
Test API endpoints directly from the browser. Enter your API key and parameters, then click Execute.
Changelog
Notable changes and updates to the PACK Energy API.
- Initial public API release
- Systems, Readings, Market Prices, Declarations, Reports endpoints
- Bearer token authentication
- Rate limiting by plan tier