Skip to content

Design

Aurora Solar
API integration

Ship Design features without building the integration. Full Aurora Solar API access via Proxy and 110+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Aurora Solar

Use Cases

Why integrate with Aurora Solar

Common scenarios for SaaS companies building Aurora Solar integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Aurora Solar

Concrete product features your team can ship faster by leveraging Truto’s Aurora Solar integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Aurora Solar AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Aurora Solar

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Aurora Solar in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Aurora Solar account

Use Truto’s frontend SDK to connect your customer’s Aurora Solar account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Aurora Solar

Truto’s Proxy API is a 1-to-1 mapping of the Aurora Solar API. You call us, we call Aurora Solar, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Aurora Solar’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Aurora Solar on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Aurora Solar

Get Aurora Solar integrated into your app

Our team understands what it takes to make a Aurora Solar integration successful. A short, crisp 30 minute call with folks who understand the problem.