Aurora Solar Proposals API

Customer-facing proposals, templates, and PDFs.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aurora-solar-proposals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aurora-solar-proposals-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Aurora Solar Agreements Proposals API
  description: 'The Aurora API lets you build apps and integrations on the Aurora Solar platform for solar sales and design. It is a tenant-scoped REST API: every resource lives under /tenants/{tenant_id}. Requests are authenticated with an API-key bearer token (Standard keys prefixed `sk_`, Restricted keys prefixed `rk_`; `sand_`/`prod_` denote the environment) passed as `Authorization: Bearer <token>`. The current API version is v2024.05, selected via the `Aurora-Version` request header.


    Scope note: A handful of paths in this document are confirmed directly against Aurora''s public reference (List Projects, Create Design Request, Create Webhook). The remaining paths are HONESTLY MODELED from Aurora''s published operation catalog (docs.aurorasolar.com/llms.txt) following the same `/tenants/{tenant_id}/<resource>` convention; exact path segments for modeled operations should be reconciled against the live reference, which is partially gated. Modeled operations carry `x-modeled: true`.'
  version: v2024.05
  contact:
    name: Aurora Solar Developer Platform
    url: https://docs.aurorasolar.com
  license:
    name: Proprietary
    url: https://aurorasolar.com/terms-of-service/
servers:
- url: https://api.aurorasolar.com
  description: Production
- url: https://api-sandbox.aurorasolar.com
  description: Sandbox
security:
- bearerAuth: []
tags:
- name: Proposals
  description: Customer-facing proposals, templates, and PDFs.
paths:
  /tenants/{tenant_id}/proposals:
    parameters:
    - $ref: '#/components/parameters/TenantId'
    post:
      operationId: createProposal
      tags:
      - Proposals
      summary: Create a proposal
      description: Creates a customer-facing proposal from a design.
      x-modeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalInput'
      responses:
        '201':
          description: The created proposal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Proposal'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/ValidationError'
  /tenants/{tenant_id}/proposals/{proposal_id}:
    parameters:
    - $ref: '#/components/parameters/TenantId'
    - name: proposal_id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: retrieveProposal
      tags:
      - Proposals
      summary: Retrieve a proposal
      description: Retrieves a proposal by ID.
      x-modeled: true
      responses:
        '200':
          description: The requested proposal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Proposal'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteProposal
      tags:
      - Proposals
      summary: Delete a proposal
      description: Deletes a proposal.
      x-modeled: true
      responses:
        '204':
          description: The proposal was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /tenants/{tenant_id}/proposal_templates:
    parameters:
    - $ref: '#/components/parameters/TenantId'
    get:
      operationId: listProposalTemplates
      tags:
      - Proposals
      summary: List proposal templates
      description: Lists the proposal templates configured for the tenant.
      x-modeled: true
      responses:
        '200':
          description: A list of proposal templates.
          content:
            application/json:
              schema:
                type: object
                properties:
                  proposal_templates:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
  /tenants/{tenant_id}/designs/{design_id}/web_proposal:
    parameters:
    - $ref: '#/components/parameters/TenantId'
    - $ref: '#/components/parameters/DesignId'
    get:
      operationId: generateWebProposalUrl
      tags:
      - Proposals
      summary: Generate web proposal URL
      description: Generates a hosted web proposal URL for a design.
      x-modeled: true
      responses:
        '200':
          description: The web proposal URL.
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              title:
                type: string
              detail:
                type: string
    Proposal:
      allOf:
      - $ref: '#/components/schemas/ProposalInput'
      - type: object
        properties:
          id:
            type: string
            format: uuid
          status:
            type: string
          web_url:
            type: string
            format: uri
          created_at:
            type: string
            format: date-time
    ProposalInput:
      type: object
      required:
      - design_id
      properties:
        design_id:
          type: string
        proposal_template_id:
          type: string
  parameters:
    DesignId:
      name: design_id
      in: path
      required: true
      description: The design ID.
      schema:
        type: string
    TenantId:
      name: tenant_id
      in: path
      required: true
      description: The tenant (organization) ID that owns the resource.
      schema:
        type: string
  responses:
    ValidationError:
      description: The request payload failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API-key bearer token. Standard keys are prefixed `sk_`, Restricted keys `rk_`; `sand_`/`prod_` denote sandbox vs production. Passed as `Authorization: Bearer <token>`.'