---
title: Aurora Solar API Integration on Truto
slug: aurorasolar
category: Design
canonical: "https://truto.one/integrations/detail/aurorasolar/"
---

# Aurora Solar API Integration on Truto



**Category:** Design  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 119 tools for Aurora Solar that AI agents can call directly.

- **get_single_aurora_solar_tenant_by_id** — Retrieve metadata about an Aurora Solar tenant by id. Returns: tenant, id, address, latitude, longitude, description. Required: id.
- **list_all_aurora_solar_tenants** — List webhooks for an Aurora Solar tenant, sorted in descending creation-date order. Returns each webhook's id, description, event, url_template, and enabled status. Required: tenant_id.
- **aurora_solar_tenants_attach_webhook** — Create a new webhook for an Aurora Solar tenant. Returns: webhook, id, description, created_at, updated_at. Required: id, event, url_template.
- **list_all_aurora_solar_versions** — Retrieve the current, latest, and rollback API versions associated with the authenticated bearer token in Aurora Solar. Returns: current, latest, rollback, rollback_expire_at. No required parameters.
- **create_a_aurora_solar_versions_upgrade** — Upgrade your Aurora Solar API version to the latest available version. Returns: current, latest, rollback, rollback_expire_at. The rollback window is 5 days (120 hours) after upgrade. No request body is required.
- **create_a_aurora_solar_versions_rollback** — Rollback the Aurora Solar API version associated with the current Bearer Token to the previous API version. Returns: current, latest, rollback, rollback_expire_at. Errors if the token has already been rolled back or was not upgraded within the last 120 hours.
- **list_all_aurora_solar_tenant_users** — List Aurora Solar users within a tenant sorted by creation date (descending). Returns: users, id. Required: tenant_id.
- **create_a_aurora_solar_tenant_user** — Create a new Aurora Solar user in a tenant via external SSO without sending an invitation email. Returns the created user object including id, tenant_id, first_name, last_name, email, account_status, role_id, and locale. Required: tenant_id, user.first_name, user.last_name, user.email, user.external_provider_id.
- **get_single_aurora_solar_tenant_user_by_id** — Retrieve an Aurora Solar user by id within a tenant. Returns the user object including id, tenant_id, first_name, last_name, email, account_status, phone, title, job_function, external_provider_id, role_id, and locale. Required: tenant_id, id.
- **update_a_aurora_solar_tenant_user_by_id** — Update an existing Aurora Solar user within a tenant. Returns the updated user object including id, tenant_id, first_name, last_name, email, account_status, role_id, and locale. Required: tenant_id, id.
- **aurora_solar_tenant_users_update_activate** — Activate an Aurora Solar user account within a tenant. Returns: id, tenant_id, first_name, last_name, email, account_status, phone, title, job_function, external_provider_id, role_id, locale, user. Required: tenant_id, id.
- **aurora_solar_tenant_users_update_deactivate** — Deactivate a user in Aurora Solar by changing their status to `deactivated`. Immediately logs the user out of the Aurora App and, for invited users, invalidates their pending invitation. Returns an empty 204 response on success. Required: tenant_id, id.
- **create_a_aurora_solar_users_invite** — Invite a new user to an Aurora Solar tenant by email, sending them setup instructions via the Aurora application. Returns the invited user object including id, email, account_status, first_name, last_name, and role_id. Required: tenant_id, user (first_name, last_name, and email are required within the user object).
- **list_all_aurora_solar_tenant_roles** — List roles for an Aurora Solar tenant, sorted ascending with custom roles first then alphabetically by name. Returns: roles, id, name, custom, scope. Required: tenant_id.
- **list_all_aurora_solar_tenant_sso_providers** — Retrieve the SSO provider configuration for an Aurora Solar tenant. Returns: sso_provider. Required: tenant_id.
- **create_a_aurora_solar_tenant_sso_provider** — Create the SSO provider configuration for an Aurora Solar tenant to enable Single Sign-On. Returns: sso_provider, provider, auth_uri, token_uri, openid_key, openid_secret_last_four, openid_discovery_doc_url, openid_base_url, openid_callback_url. Required: tenant_id, sso_provider.
- **update_a_aurora_solar_tenant_sso_provider_by_id** — Update the SSO provider configuration for an Aurora Solar tenant. Returns: sso_provider. Required: tenant_id.
- **list_all_aurora_solar_tenant_teams** — List all teams belonging to an Aurora Solar tenant, returned in alphabetical order by name. Returns the teams array where each entry includes id, name, and partner_id. Required: tenant_id.
- **list_all_aurora_solar_tenant_partners** — List Aurora Solar partners for a tenant, returned sorted alphabetically by name. Returns: partners, id, name. Required: tenant_id.
- **create_a_aurora_solar_tenant_partner** — Create a new partner within an Aurora Solar tenant. Returns the created partner object including id, name, created_at, and updated_at. Required: tenant_id, partner (with name).
- **get_single_aurora_solar_tenant_partner_by_id** — Retrieve a single Aurora Solar partner by id. Returns the partner object including id, name, created_at, and updated_at. Required: tenant_id, id.
- **update_a_aurora_solar_tenant_partner_by_id** — Update an existing Aurora Solar partner by id. Returns the updated partner object including id, name, created_at, and updated_at. Required: tenant_id, id, partner.
- **create_a_aurora_solar_partner_user** — Add one or more users to a partner in Aurora Solar. Returns: partner_id, user_ids. Required: tenant_id, partner_id, user_ids.
- **update_a_aurora_solar_partner_user_by_id** — Replace the complete list of users for a partner in Aurora Solar, overwriting any existing assignments. Returns: partner_id, user_ids. Required: tenant_id, partner_id, user_ids.
- **create_a_aurora_solar_partner_logo** — Upload or replace the logo image for a partner in aurorasolar. Returns the updated partner object containing id, name, created_at, and updated_at. Required: tenant_id, partner_id. The request body must be raw binary image data; accepted formats are JPG, JPEG, PNG, GIF, HEIC, and WEBP — the image is converted to WebP on upload. If a logo already exists for the partner, it is replaced.
- **list_all_aurora_solar_tenant_orders** — List Aurora Solar orders for a tenant, sorted by newest first. Returns: orders, id, customer_first_name, customer_last_name, customer_address, phase. Required: tenant_id. Returns up to 250 orders per page.
- **get_single_aurora_solar_tenant_order_by_id** — Retrieve details for a single Aurora Solar order by id. Returns the order object including id, customer_first_name, customer_email, customer_address, phase, energy_offset_percent, and a temporary utility_bill_url (valid 12 hours). Required: tenant_id, id.
- **update_a_aurora_solar_tenant_order_by_id** — Update the lifecycle phase of an Aurora Solar order. Returns the full updated order including id, customer_first_name, customer_last_name, customer_email, customer_phone, customer_address, customer_address_components, phase, sold_by, energy_offset_percent, notes, and utility_bill_url. Required: tenant_id, id, order.phase.
- **create_a_aurora_solar_order_decline** — Decline an Aurora Solar order by specifying a disqualification reason. Returns the declined order object including id, customer_first_name, customer_last_name, customer_email, customer_phone, customer_address, and additional customer and order details. Required: tenant_id, order_id, disqualified_reason.
- **create_a_aurora_solar_order_sold** — Mark an aurorasolar order as sold, optionally recording the sale date (defaults to today's date UTC if omitted). Returns: order, id. Required: tenant_id, order_id.
- **create_a_aurora_solar_project_creation_run** — Create a Project from an aurorasolar Order by triggering an asynchronous project creation job. Returns: create_project_job, example. Required: tenant_id, order_id. This is an asynchronous endpoint; poll the job status to determine completion.
- **list_all_aurora_solar_project_creation_status** — Retrieve the status of a Convert Order to Project job in aurorasolar. This is an asynchronous endpoint; poll it using the job_id returned from the Convert Order to Project POST. Returns: create_project_job, example. Required: tenant_id, order_id, job_id.
- **list_all_aurora_solar_tenant_projects** — List Aurora Solar projects for a tenant, sorted by creation date descending. Returns: projects, id, created_at, property_address, tags. Required: tenant_id. Defaults to 100 projects per page; max 250.
- **create_a_aurora_solar_tenant_project** — Create a new Aurora Solar project within the specified tenant. Returns the created project including id, name, created_at, status, location, owner_id, ahj_id, and customer details. Required: tenant_id, location (property_address or latitude/longitude pair).
- **get_single_aurora_solar_tenant_project_by_id** — Retrieve a single Aurora Solar project by id. Returns the full project object including id, name, created_at, status, location, owner_id, partner_id, ahj_id, and customer details. Required: tenant_id, id.
- **update_a_aurora_solar_tenant_project_by_id** — Update an existing Aurora Solar project by id. Returns the updated project including id, name, created_at, location, status, project_type, owner_id, and customer details. Required: tenant_id, id.
- **delete_a_aurora_solar_tenant_project_by_id** — Delete an Aurora Solar project by id. Returns an empty 204 response on success. Required: tenant_id, id.
- **list_all_aurora_solar_project_assets** — List project assets in Aurora Solar for a given project. Returns: project_assets, id. Required: tenant_id, project_id.
- **create_a_aurora_solar_project_asset** — Create a project asset in Aurora Solar by uploading a binary image or document to a project. Returns: project_asset, id. Required: tenant_id, project_id. Accepted formats: .jpg, .jpeg, .png, .gif, .webp, .pdf; max 15 MB per file; max 100 assets per project. New assets overwrite existing assets with the same filename.
- **list_all_aurora_solar_project_project_notes** — Retrieve the project note for an Aurora Solar project. Returns the project_note object containing id (unique UUID of the note) and content (the note body text). Required: tenant_id, project_id.
- **create_a_aurora_solar_project_project_note** — Create the project note for an Aurora Solar project when one does not already exist. Returns: project_note. Required: tenant_id, project_id, project_note.
- **update_a_aurora_solar_project_project_note_by_id** — Update the project note body for an Aurora Solar project. Returns: project_note. Required: tenant_id, project_id, project_note.
- **list_all_aurora_solar_project_project_note_files** — List files attached to the project note in Aurora Solar for a given project. Returns: project_note_files, id. Each response includes freshly signed download URLs valid for 86400 seconds. Required: tenant_id, project_id.
- **get_single_aurora_solar_tenant_ahj_by_id** — Retrieve an Authority Having Jurisdiction (AHJ) from Aurora Solar by id. AHJ data is derived from a project's property address using Census TIGER/Line Legal Boundary Shapefiles. Returns: ahj, id. Required: tenant_id, id.
- **list_all_aurora_solar_project_consumption_profiles** — Retrieve the consumption profile for an Aurora Solar project. Returns: consumption_profile, id. Required: tenant_id, project_id.
- **update_a_aurora_solar_project_consumption_profile_by_id** — Update the consumption profile for an Aurora Solar project. Accepts exactly one of monthly_bill, monthly_energy, or interval_data per request. Returns the updated consumption_profile object including id, project_id, location, utility, utility_rate, input_mode, monthly_energy, monthly_bill, and hourly_energy. Required: tenant_id, id.
- **create_a_aurora_solar_utility_bills_run** — Upload a utility bill document to an aurorasolar project and start an asynchronous OCR parse of its contents. Returns: utility_bill_upload_job. Required: tenant_id, project_id. Accepted file formats: PDF, JPG, JPEG, PNG, GIF, WEBP. The parse step runs asynchronously; use job_id to poll for completion.
- **list_all_aurora_solar_utility_bills_status** — Retrieve the status of a utility bill upload and parse job in Aurora Solar. Returns: utility_bill_upload_job. Required: tenant_id, project_id, job_id. This is an asynchronous endpoint; poll until status is "succeeded" or "failed".
- **list_all_aurora_solar_project_utility_bills** — List all utility bills uploaded to an aurorasolar project, ordered newest first with a fresh presigned download URL for each. Returns: utility_bills, id, created_at. Required: tenant_id, project_id. Download URLs expire after 24 hours; re-call to refresh.
- **get_single_aurora_solar_project_utility_bill_by_id** — Retrieve a single aurorasolar utility bill by id with a freshly-minted presigned download URL. Returns: utility_bill, id, created_at. Required: tenant_id, project_id, id. The download URL expires after 24 hours; re-call to refresh.
- **list_all_aurora_solar_project_bill_summaries** — Retrieve the estimated current bill summary for year 1 for an aurorasolar project. Returns: bill_summary. Required: tenant_id, project_id.
- **list_all_aurora_solar_design_bill_summaries** — Retrieve the estimated year-1 bill summary for an Aurora Solar design, incorporating its energy optimization products, PV system, and storage. Returns: bill_summary. Required: tenant_id, design_id.
- **list_all_aurora_solar_tenant_design_requests** — List Aurora Solar design requests for a tenant, sorted by descending creation date. Returns each item's id, project_id, design_id, and status. Required: tenant_id. Optionally filter by status[].
- **create_a_aurora_solar_tenant_design_request** — Create a new Aurora Solar design request for a project within a tenant. Returns the design_request object including id, project_id, status, latitude, longitude, address, submitted_at, completed_at, reviewed_at, designer_rejected_at, image_src, lidar_src, design_id, sla, designer_rejection_reason, auto_accept, auto_accepted, roof_pitch, and number_of_stories. Required: tenant_id,…
- **get_single_aurora_solar_tenant_design_request_by_id** — Retrieve a single Aurora Solar design request by id within a tenant. Returns the design_request object including id, project_id, status, latitude, longitude, address, submitted_at, completed_at, reviewed_at, designer_rejected_at, image_src, lidar_src, design_id, sla, designer_rejection_reason, auto_accept, and auto_accepted. Required: tenant_id, id.
- **create_a_aurora_solar_design_request_accept** — Accept an Aurora Solar design request, advancing its status to `accepted` and generating a new 3D design within the referenced project. Returns the updated design_request object including id, project_id, status, design_id, sla, latitude, longitude, address, submitted_at, completed_at, image_src, lidar_src, and designer_rejection_reason. Required: tenant_id, design_request_id.
- **create_a_aurora_solar_design_requests_eagleview** — Create a new EagleView design request in Aurora Solar for a given tenant and project. Returns: eagleview_design_request, id, project_id, tenant_id, design_status, latitude, longitude, design_id, auto_accept, auto_accepted, source_design_id, created_at, updated_at. Required: tenant_id, eagleview_design_request (project_id required within). Both latitude and longitude must be provided together or…
- **get_single_aurora_solar_design_requests_eagleview_by_id** — Retrieve an EagleView design request by id from Aurora Solar. Returns: eagleview_design_request, id, project_id, tenant_id, design_status, latitude, longitude, design_id, auto_accept, auto_accepted, source_design_id, created_at, updated_at. Required: tenant_id, id.
- **create_a_aurora_solar_accept** — Accept an Aurora Solar EagleView design request, advancing its design_status to `accepted` and generating a new EagleView Powered Model design within the project. Returns eagleview_design_request with id, design_status, design_id, latitude, longitude, auto_accept, auto_accepted, created_at, and updated_at. Required: tenant_id, eagleview_id.
- **list_all_aurora_solar_project_designs** — List designs for an Aurora Solar project, sorted in descending order by creation date. Returns: designs, id, created_at. Required: tenant_id, project_id.
- **create_a_aurora_solar_tenant_design** — Create a new design for an Aurora Solar project. Returns the created design object including id, name, project_id, external_provider_id, and created_at. Required: tenant_id, design.project_id, design.name.
- **aurora_solar_tenant_designs_duplicate** — Duplicate an existing Aurora Solar design, copying its 3D model, PV system, storage, and pricing into the same project. Returns the duplicated design object including id, name, project_id, external_provider_id, and created_at. Required: tenant_id, id.
- **get_single_aurora_solar_tenant_design_by_id** — Retrieve an Aurora Solar design by id. Returns id, name, project_id, external_provider_id, milestone, created_at, image_src, and lidar_src. Required: tenant_id, id.
- **update_a_aurora_solar_tenant_design_by_id** — Update an Aurora Solar design's name and latest milestone. Returns id, name, project_id, external_provider_id, milestone, created_at, image_src, and lidar_src. Required: tenant_id, id.
- **list_all_aurora_solar_design_summaries** — Retrieve the summary of an Aurora Solar design, including solar arrays, components, and energy production. Returns: design. Required: tenant_id, design_id.
- **list_all_aurora_solar_design_system_loss_settings** — Retrieve the editable per-design system loss settings for an aurorasolar design, including input derate percentages and their lock state. Returns: system_loss_settings, pricing. Required: tenant_id, design_id.
- **update_a_aurora_solar_design_system_loss_setting_by_id** — Update the editable per-design system loss settings in aurorasolar. Accepts a partial map of loss names to percentages (0-100); only supplied losses are updated, others remain unchanged. Returns the updated system_loss_settings with editable, locked_by_financier, and per-loss values (value, locked, disabled_reason). Required: tenant_id, id.
- **list_all_aurora_solar_design_roof_summaries** — Retrieve the roof summary for an Aurora Solar design, returning an array of roof objects each containing shape, area, modules_area, pitch, effective_mean_height, modules, obstructions, edges_length, and per-face details (azimuth, pitch, mean_height, eave_height, obstruction counts). Required: tenant_id, design_id.
- **list_all_aurora_solar_design_racking_arrays** — List racking arrays for an aurorasolar design — groups of adjacent solar modules that share the same mounting plane, module model, azimuth, pitch, and orientation. Returns each array's units_of_measurement, rows, columns, array_layout, ground_mounted, pitch, azimuth, tilt, rotation, adjacent_arrays, and module details. Required: tenant_id, design_id.
- **update_a_aurora_solar_bill_of_materials_racking_component_by_id** — Update the racking bill of materials for an aurorasolar design, creating or overwriting racking components. Returns a bill_of_materials array where each entry includes id, component_type, sku, name, manufacturer_name, and quantity. Required: tenant_id, design_id. Sending an empty array removes all racking components from the design.
- **list_all_aurora_solar_design_web_proposals** — Retrieve the Web Proposal for an Aurora Solar design. Returns url (the customer-facing Aurora Sales Mode proposal link, or null if not yet created) and url_expired (whether the link has expired and is no longer accessible). Required: tenant_id, design_id.
- **create_a_aurora_solar_web_proposal_generate_url** — Generate a new Web Proposal URL for an Aurora Solar design. Returns a web_proposal object containing url (the shareable proposal link) and url_expired (expiry status). Any previously generated URL is immediately expired — a design can only have one non-expired URL at a time. Required: tenant_id, design_id.
- **create_a_aurora_solar_proposal_pdf_generation_run** — Run a proposal PDF generation job on an Aurora Solar design asynchronously (returns 202 Accepted immediately). Returns: proposal_pdf_generation_job, url. Required: tenant_id, design_id.
- **list_all_aurora_solar_proposal_pdf_generation_status** — Retrieve the status of a proposal PDF generation job in Aurora Solar. Returns: proposal_pdf_generation_job, url. Required: tenant_id, design_id, job_id.
- **list_all_aurora_solar_design_assets** — List design assets for an Aurora Solar design, sorted in descending order by taken_at. Only assets whose upload is complete are returned. Returns: assets, id, url. Required: tenant_id, design_id.
- **create_a_aurora_solar_design_asset** — Create a new design asset for an Aurora Solar design by uploading a binary file. Returns the created asset including its id, asset_type, url, filename, taken_at, and options. Required: tenant_id, design_id, asset_type. Accepted file formats: jpg, jpeg, png, gif, webp, pdf. Max 25 MB per file; max 20 assets per design.
- **get_single_aurora_solar_design_asset_by_id** — Retrieve a single Aurora Solar design asset by id. Only assets whose upload is complete are returned (in-progress uploads return 404). Returns: asset, id, url. Required: tenant_id, design_id, id.
- **create_a_aurora_solar_ai_roof_run** — Run an AI roof model generation job for a design in Aurora Solar (asynchronous). Returns: ai_roof_job. Required: tenant_id, design_id.
- **list_all_aurora_solar_ai_roof_status** — Check the status of an AI Roof job in Aurora Solar. Returns: ai_roof_job. Required: tenant_id, design_id, job_id.
- **list_all_aurora_solar_components_modules** — List modules enabled for a tenant in Aurora Solar. Returns: modules, id. Required: tenant_id.
- **aurora_solar_components_modules_list_2** — Retrieve details on a single Aurora Solar module for a tenant. Returns: id, manufacturer, rating_stc, dimensions, weight, spec_sheet_url. Required: tenant_id, module_id.
- **list_all_aurora_solar_components_inverters** — List inverters enabled for a tenant in Aurora Solar. Returns a collection of inverter records including id, name, manufacturer, microinverter, nominal_output_voltage, rating_stc, cec_efficiency_pct, weight, spec_sheet_url, and integrated_batteries. Required: tenant_id.
- **aurora_solar_components_inverters_list_2** — Retrieve details of a specific inverter for an Aurora Solar tenant. Returns: id, manufacturer, microinverter, nominal_output_voltage, rating_stc, cec_efficiency_pct, weight, spec_sheet_url, integrated_batteries. Required: tenant_id, inverter_id.
- **list_all_aurora_solar_components_dc_optimizers** — List DC optimizers enabled for an Aurora Solar tenant. Returns: dc_optimizers, id. Required: tenant_id.
- **aurora_solar_components_dc_optimizers_list_2** — Retrieve details on a single Aurora Solar DC optimizer by its ID within a tenant. Returns: id, manufacturer, max_output_voltage, efficiency_pct, efficiency_pct_max, spec_sheet_url. Required: tenant_id, dc_optimizer_id.
- **list_all_aurora_solar_design_pricings** — Retrieve the pricing details of an Aurora Solar design. Returns a pricing object containing pricing_method, system_price, flat_system_price, price_per_watt, storage_pricing_method, storage_flat_system_price, heat_pump_pricing_method, heat_pump_flat_system_price, energy_optimization_pricing_method, pricing_by_component, adders, incentives, system_price_breakdown, storage_system_price_breakdown,…
- **update_a_aurora_solar_design_pricing_by_id** — Update the pricing of an Aurora Solar design by id. Returns: pricing. Required: tenant_id, id.
- **create_a_aurora_solar_pricing_adder** — Create a new pricing adder or discount for an Aurora Solar design. Returns the created adder object including id, adder_name, adder_value, adder_type, is_discount, and additional_charges. Required: tenant_id, design_id, adder (must include adder_name and adder_value).
- **delete_a_aurora_solar_tenant_adder_by_id** — Delete an adder by id in Aurora Solar. Returns an empty 204 response on success. Required: tenant_id, id.
- **list_all_aurora_solar_design_financings** — List all financings for an Aurora Solar design, sorted by creation date descending. Returns: financings, id. Required: tenant_id, design_id.
- **aurora_solar_design_financings_list_2** — Retrieve a single Aurora Solar financing by its ID for a given design. Returns full financing detail including id, name, financing_option, system_price, lifetime_savings, created_at, project_id, ran_at, up_to_date, and financing-type-specific fields such as loan details, PPA/lease rates, and financier information. Required: tenant_id, design_id, financing_id.
- **create_a_aurora_solar_financing_push_to_financier** — Push the current state of an aurorasolar financing to a financier. Currently supports select Mosaic products only, creating an Estimate object in Mosaic; this is a one-way operation. Returns the updated financing object including id, name, financing_option, created_at, system_price, and a financier object containing the Mosaic Estimate ID. Required: tenant_id, design_id, financing_id.
- **list_all_aurora_solar_tenant_proposal_templates** — List proposal templates for an Aurora Solar tenant. Returns each template's id, name, enabled, default, author, created_at, updated_at, last_used, author_partner_id, assigned_partner_ids, all_partners_assigned, and partner_defaults. The default template is listed first, followed by others in descending order by enabled status and creation date. Required: tenant_id.
- **aurora_solar_tenant_proposal_templates_list_2** — Retrieve a single Aurora Solar proposal template by ID. Returns: id, created_at, updated_at, last_used, enabled, author, author_partner_id, assigned_partner_ids, all_partners_assigned, partner_defaults. Required: tenant_id, proposal_template_id.
- **list_all_aurora_solar_design_proposals** — Retrieve the default proposal for a design in Aurora Solar. Returns a proposal object including id, created_at, updated_at, proposal_template_id, and proposal_link. Required: tenant_id, design_id.
- **create_a_aurora_solar_design_proposal** — Create the default proposal for a design in Aurora Solar using a proposal template. If no proposal_template_id is provided, the default template set by the Administrator or Partner is used. Returns a proposal object including id, created_at, updated_at, proposal_template_id, and proposal_link. Required: tenant_id, design_id.
- **delete_a_aurora_solar_design_proposal_by_id** — Delete the default proposal for a design in Aurora Solar. Returns an empty 204 response on success. Required: tenant_id, design_id.
- **list_all_aurora_solar_project_agreements** — List agreements for an Aurora Solar project, sorted by creation date descending. Returns: agreements, id, created_at. Required: tenant_id, project_id.
- **get_single_aurora_solar_tenant_agreement_by_id** — Get a specific agreement by id in aurorasolar. Returns: agreement, id, project_id, design_id, agreement_template_name, status, last_viewed_at, created_at, sent_at, error_message, signing_provider. The signing_provider field indicates whether the agreement is backed by Docusign or Dropbox Sign. Required: tenant_id, id.
- **list_all_aurora_solar_agreement_download_links** — Retrieve a download link for a signed legacy agreement in Aurora Solar (Dropbox Sign-backed). Returns the agreement object containing file_url (a pre-signed download URL) and expires_at (link expiry timestamp). Required: tenant_id, agreement_id. Rate-limited to 5 requests per minute; the generated link expires 72 hours after creation.
- **create_a_aurora_solar_download_url_run** — Initiate async generation of a download URL for a signed Docusign agreement in aurorasolar. Returns the created async job including job_id, status, requested_at, completed_at, file_url, project_id, and design_id. Required: tenant_id, agreement_id. Only applicable to agreements with signing_provider 'docusign' and status 'signed'.
- **list_all_aurora_solar_download_url_status** — Retrieve the status of an Aurora Solar agreement download URL generation job. Returns: agreement_download_url_job. Required: tenant_id, agreement_id, job_id. When the job succeeds, file_url contains a short-lived PDF download link that expires 15 minutes after generation.
- **list_all_aurora_solar_project_site_surveys** — List site surveys for a project in Aurora Solar (beta). Returns a collection of site survey records, each containing id, status, created_at, and requested_for_design_id. Required: tenant_id, project_id.
- **create_a_aurora_solar_tenant_site_survey** — Create a new site survey in aurorasolar for a given tenant and project. Returns the site_survey object including the id of the newly created survey. Required: tenant_id, site_survey (with project_id).
- **list_all_aurora_solar_tenant_site_surveys** — Retrieve a single aurorasolar site survey by tenant and site survey ID. Returns the site_survey object including id, project_id, status, created_at, electrical data, and roof mounting plane details. Required: tenant_id, site_survey_id.
- **update_a_aurora_solar_tenant_site_survey_by_id** — Update the overview attributes of an aurorasolar site survey, including notes, report PDF URL, and images. Returns the updated site_survey overview with report, notes, and images. Required: tenant_id, id.
- **list_all_aurora_solar_site_survey_requests** — Retrieve the site survey request for a given site survey in Aurora Solar. Returns: site_survey_request, id, project_id, status, requested_for_design_id, screenshot_url, requested_at, completed_at. Required: tenant_id, site_survey_id.
- **update_a_aurora_solar_site_survey_electrical_by_id** — Update electrical data on an Aurora Solar site survey. Returns: electrical. Required: tenant_id, site_survey_id, and electrical.
- **update_a_aurora_solar_electrical_subpanel_by_id** — Update the list of electrical subpanels for an Aurora Solar site survey, fully replacing any previously stored subpanel data. Returns: subpanels. Required: tenant_id, site_survey_id, subpanels.
- **update_a_aurora_solar_roofs_mounting_plane_by_id** — Update mounting planes for an aurorasolar site survey, replacing all previously uploaded mounting plane data. Returns: mounting_planes. Required: tenant_id, site_survey_id, mounting_planes.
- **update_a_aurora_solar_site_survey_status_by_id** — Update the status of an Aurora Solar site survey, transitioning it from `in-progress` to `completed`. Returns: site_survey. Required: tenant_id, site_survey_id, and site_survey.status (only `completed` is currently a valid target status).
- **create_a_aurora_solar_tenant_plan_set_request** — Create a new plan set request in Aurora Solar for a given tenant. Returns: plan_set_request, id, design_id, project_id, status, user. Required: tenant_id, design_id, and electrical_information (including main_panel_location and main_bus_rating). All new requests are created in draft status.
- **get_single_aurora_solar_tenant_plan_set_request_by_id** — Retrieve a plan set request by id from Aurora Solar. Returns: plan_set_request, id, design_id, project_id, status, design_request. Required: tenant_id, id.
- **list_all_aurora_solar_plan_set_request_plan_sets** — Retrieve plan set documents for a completed aurorasolar plan set request. Once the request is completed, returns a plan_set object containing plan_set_request_id, design_cad_view_url (link to the CAD view of the design), and plan_set_document_url (link to the plan set PDF). Required: tenant_id, plan_set_request_id.
- **list_all_aurora_solar_tenant_webhooks** — Retrieve a single Aurora Solar webhook by ID. Returns: webhook, id, description, created_at, updated_at. Required: tenant_id, webhook_id.
- **update_a_aurora_solar_tenant_webhook_by_id** — Update properties of a single Aurora Solar webhook. Returns: webhook, id, description, created_at, updated_at. Required: tenant_id, id.
- **delete_a_aurora_solar_tenant_webhook_by_id** — Delete an Aurora Solar webhook by id. Returns an empty 204 response on success. Required: tenant_id, id.
- **list_all_aurora_solar_tenant_shared_projects** — List projects shared with a tenant in aurorasolar, sorted by share date descending. Returns: shared_projects, id. Required: tenant_id.
- **create_a_aurora_solar_milestone_share** — Share an Aurora Solar milestone with a third-party owner (TPO) provider determined by the financing associated with the milestone's design. Returns the shared_milestone object including id, project_id, sending_tenant_id, receiving_tenant_id, and shared_at. Required: tenant_id, milestone_id.

## How it works

1. **Link your customer's Aurora Solar account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Aurora Solar.** The Proxy API is a 1-to-1 mapping of the Aurora Solar API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Sync CRM leads into Aurora as ready-to-design projects** — Solar CRMs and sales platforms can auto-create Aurora projects and orders from new leads, then kick off AI roof modeling so reps have a proposal-ready design before their first call.
- **Automate procurement from finalized solar designs** — ERPs and inventory tools can pull the exact bill of materials — modules, inverters, DC optimizers, and racking components — from signed Aurora designs to trigger purchase orders and warehouse reservations.
- **Push field survey data back into engineering** — Field service and drone inspection apps can update Aurora's site survey, roof mounting planes, and electrical subpanel data directly, letting installers move from site visit to CAD design without manual re-entry.
- **Underwrite and quote solar loans in real time** — Lending platforms can read Aurora's design pricing, adders, and consumption profiles to underwrite offers, then push financier estimates back into Aurora so reps present accurate monthly payments in the proposal.
- **Vault signed agreements and plan sets automatically** — Document management and compliance tools can retrieve signed agreements, generated proposal PDFs, and plan set outputs from Aurora via presigned URLs for long-term storage and audit trails.

## What you can build

- **Lead-to-design automation** — Create Aurora orders and projects from inbound leads and trigger an AI roof run so a 3D model is waiting when the sales rep opens the record.
- **Embedded interactive proposals** — Generate a web proposal URL for any Aurora design and embed it as an iframe inside your own app so reps and homeowners never leave your UI.
- **Utility bill OCR ingestion** — Upload homeowner utility bills to Aurora, poll the async job status, and pull back parsed consumption profiles and bill summaries to power your own energy analytics.
- **Bill of materials extraction** — Pull granular component data — modules, inverters, DC optimizers, and racking arrays — from completed designs to drive procurement, quoting, or logistics workflows.
- **Two-way site survey sync** — Read pending site survey requests, push field-captured roof mounting planes and electrical subpanel data back into Aurora, and flip survey status to completed to hand off to engineering.
- **Financier push-back for lending** — Read Aurora design pricing and push financier estimate IDs back via the financing endpoint so pre-approved loan terms appear natively inside the Aurora proposal.

## FAQs

### How does authentication work for Aurora Solar through Truto?

Your end users connect their Aurora tenant through Truto's managed auth flow. Truto handles credential storage, refresh, and tenant scoping so you can call Aurora endpoints with a single Truto integrated account ID without building OAuth or API key management yourself.

### Are Aurora's asynchronous jobs supported?

Yes. Long-running operations like AI roof runs, utility bill parsing, project creation, proposal PDF generation, and agreement download URLs are exposed as run/status pairs (e.g. create_a_aurora_solar_ai_roof_run and list_all_aurora_solar_ai_roof_status), so you can trigger a job and poll for completion.

### Can I receive real-time events from Aurora?

Yes. Truto supports attaching webhooks at the tenant level via aurora_solar_tenants_attach_webhook and managing them through the tenant webhooks endpoints, so you can listen for events like order and agreement state changes instead of polling.

### What design and pricing data can I read or modify?

You can list and update designs, read design summaries, roof summaries, racking arrays, system loss settings, and web proposals, and update design pricing along with creating or deleting pricing adders. Component catalogs for modules, inverters, and DC optimizers are also available.

### Does the integration support multi-tenant Aurora accounts?

Yes. Tenant, tenant user, role, team, SSO provider, and partner endpoints are all exposed, so platforms serving multiple installer organizations can manage users, invites, activation, and partner relationships programmatically.

### Can I retrieve signed contracts and plan set documents?

Yes. You can list project agreements, generate download URLs via create_a_aurora_solar_download_url_run, and retrieve plan sets from plan set requests, giving document management systems a reliable path to archive signed agreements and permitting CADs.
