GET https://solarproof.com.au/apidata.php

Description

Returns a comprehensive list of all projects (solar quotations/proposals) in your Solar Proof account. Each project includes detailed solar system specifications, pricing, financing details, and site information. Use the expanded=1 parameter to include additional user and company details. Results are paginated with 50 projects per page.

Pagination: This endpoint returns a maximum of 50 projects per request. Use the page parameter to retrieve additional pages of results.
Expanded Mode: Set expanded=1 to include user company information, pricing items/systems, battery details, and customer statuses. This provides complete context for each project.

Request Parameters

Query Parameters

Parameter Type Required Description
api_key string Required Your Solar Proof API key
action string Required Must be set to "getallprojects"
page integer Optional Page number for pagination (default: 1). Each page returns 50 projects.
Page 1: projects 1-50, Page 2: projects 51-100, etc.
expanded integer Optional Set to 1 to retrieve expanded project information including user details, pricing items, and battery info

Response Structure

Due to the extensive number of fields (60+ in project_info alone), please see the expandable sections below for complete documentation.

Large Response: This endpoint returns comprehensive project data. Consider filtering or caching results in your application to optimize performance.

The response is an array where each item contains two arrays:

  • project_info - Core project details (system specs, pricing, site info)
  • expanded_info - Additional user/company details (only when expanded=1)

Key Project Information Fields

project_id - Unique ID
quotenickname - Project name
customer_id - Associated customer
afterrebatecost - Final price
panelqty - Number of panels
paneltype - Panel model
invertertype - Inverter model
siteaddress - JSON address
signed_at - Signature date
proposal_link - PDF URL

See full example response below for complete field list

Example Response

Response Body (Single Project Shown) JSON
[
  {
    "project_info": [{
      "project_id": "2143",
      "quotenickname": "Project #2143",
      "user_id": "321",
      "battery_id": "5",
      "batteryqty": "1",
      "afterrebatecost": "15500",
      "quotecreationdate": "2022-08-15 00:38:24",
      "signed_at": "2022-08-20 14:30:00",
      "customer_id": "80008",
      "siteaddress": "{\"streetnum\":\"447\",\"street\":\"Collins St\",\"suburb\":\"Melbourne\",\"state\":\"VIC\",\"postcode\":\"3000\",\"country\":\"AU\"}",
      "rooftype": "Tin",
      "roofheight": "Single Storey",
      "dailykwhuse": "20",
      "costperkwh": "0.265",
      "exportvalue": "0.08",
      "paneltype": "365W - LONGI Solar - (LR6-72PE-365M)",
      "panelwattage": "365",
      "panelqty": "33",
      "invertertype": "GOODWE 5kW (GW5000-DT)",
      "inverterqty": "1",
      "racking": "Clenergy",
      "stcvalue": "37",
      "stcqty": "114",
      "financetype": "finance",
      "proposal_link": "/uploads/pdfs/2143/proposal_2143.pdf",
      "panel_model": "LR6-72PE-365M",
      "panel_brand": "LONGI Solar",
      "inverter_model": "Symo 15.0-3-M",
      "inverter_brand": "Fronius"
    }],
    "expanded_info": [{
      "username": "jsmith@solarproof.com.au",
      "name": "Jim Smith",
      "email": "jsmith@solarproof.com.au",
      "companyname": "Solar Proof",
      "companyaddress": "PO Box 630, Mullumbimby, NSW, 2482",
      "companyphone": "07 3054 4308",
      "batterycapacity": "9.8",
      "batteryname": "LG Chem RESU 9.8kWh",
      "batterybrand": "LG",
      "batterymodel": "RESU 9.8kWh",
      "company_id": "321"
    }]
  }
]

Example Requests

Basic Request

cURL bash
curl -X GET "https://solarproof.com.au/apidata.php?action=getallprojects&page=1&api_key=YOUR_API_KEY"

Request with Expanded Information

cURL bash
curl -X GET "https://solarproof.com.au/apidata.php?action=getallprojects&page=1&expanded=1&api_key=YOUR_API_KEY"
JavaScript (Fetch) javascript
const apiKey = 'YOUR_API_KEY';
const page = 1;
const expanded = 1;
const url = `https://solarproof.com.au/apidata.php?action=getallprojects&page=${page}&expanded=${expanded}&api_key=${apiKey}`;

fetch(url)
  .then(response => response.json())
  .then(projects => {
    console.log(`Retrieved ${projects.length} projects`);
    
    projects.forEach(project => {
      const info = project.project_info[0];
      console.log(`Project: ${info.quotenickname}`);
      console.log(`  Panels: ${info.panelqty}x ${info.paneltype}`);
      console.log(`  Cost: $${info.afterrebatecost}`);
      
      if (project.expanded_info && project.expanded_info.length > 0) {
        console.log(`  Company: ${project.expanded_info[0].companyname}`);
      }
    });
  })
  .catch(error => console.error('Error:', error));
Python python
import requests
from urllib.parse import urlencode

api_key = 'YOUR_API_KEY'
page = 1

params = {
    'action': 'getallprojects',
    'page': page,
    'expanded': 1,
    'api_key': api_key
}

url = f'https://solarproof.com.au/apidata.php?{urlencode(params)}'
response = requests.get(url)
projects = response.json()

print(f'Retrieved {len(projects)} projects')

for project in projects:
    info = project['project_info'][0]
    print(f"Project: {info['quotenickname']}")
    print(f"  Panels: {info['panelqty']}x {info['panelwattage']}W")
    print(f"  Cost: ${info['afterrebatecost']}")
    print("---")

Common Use Cases

Sales Analytics & Reporting

Analyze project values, system sizes, panel types, and conversion rates. Track signed vs unsigned projects.

CRM Integration

Export all project data to external CRM systems with complete solar system specifications and pricing.

Financial Reporting

Track project values, financing details, STC rebates, and payment terms for financial analysis.

Related Endpoints

Related Webhook Events

recent_draft_project

Triggered when a draft project is created

published_proposal_link

Triggered when a proposal is published