Getting Started
All examples use the sandbox URL. Replace with the production URL when you're ready to go live.
1. List Your Sites
GET /v1/sites returns every site in your fleet with its current status.
curl https://aggregator-api-sandbox.flip.energy/v1/sites \
-H "Authorization: Bearer your_api_key"2. Pull Performance Reports
GET /v1/reports/equipment_performance returns monthly solar performance data — actual vs. expected production for each site. The month parameter defaults to the current month.
curl "https://aggregator-api-sandbox.flip.energy/v1/reports/equipment_performance?month=2025-06" \
-H "Authorization: Bearer your_api_key"3. Push Fleet Data
POST /v1/fleet-data lets you push records from your CRM into Flip — for example, to correct customer details or add expected solar production values that the OEM doesn't provide.
curl -X POST https://aggregator-api-sandbox.flip.energy/v1/fleet-data \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"records": [
{
"external_id": "CRM-12345",
"record_type": "site",
"data": {
"customer_name": "John Doe",
"system_size_kw": 10.5
}
}
]
}'4. Commission a Site
POST /v1/commission registers a new site and its devices into Flip.
curl -X POST https://aggregator-api-sandbox.flip.energy/v1/commission \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"site": {
"id": "site-abc-789",
"first_name": "John",
"last_name": "Doe",
"street_address": "123 Main St",
"city": "San Francisco",
"state_code": "CA",
"zip_code": "88800"
},
"devices": [
{
"id": "device-xyz-123",
"type": "BATTERY",
"technology_provider_identifier": "DURACELL",
"install_date": "2025-06-19T15:30:00Z"
}
]
}'In the sandbox, use zip codes 88800, 88801, or 88802 to match with test programs.
Next Steps
See the API Reference in the sidebar for complete request and response schemas.
Introduction
Overview of the Flip Aggregator API for fleet operators
Commission a site and devices POST
Register a new site and its devices into Flip. If the site requires additional information to complete setup (such as terms and conditions acceptance), the API returns a 422 response detailing what is needed — collect that information and retry.