---
updatedAt: 2025-09-08T17:18:45.000Z
agentTools:
  projectIndex: https://docs.aurorasolar.com/llms.txt
---

# Retrieve Web Proposal URL

This tutorial shows how to retrieve a URL to the publicly available interactive proposal.

# How It Works

***

You can share a Sales Mode proposal with the homeowner via a public Web Proposal URL. On URL creation in Sale Mode, you will receive a webhook with the salient `design_id` that you can use to retrieve Web Proposal URL.

# Getting Started

***

To complete this tutorial, you will need:

* your Aurora tenant to be on a Business plan,
* your Aurora tenant to use the current API version,
* your Aurora bearer token,
* your Aurora `tenant_id`,
* URL to deliver Aurora webhooks to.

You or any Administrator for your Aurora tenant can retrieve the token and tenant id from the [API Settings](https://v2.aurorasolar.com/settings/organization/api-settings) page.

# Step 1. Subscribe to *web\_proposal\_url\_created* webhook event.

***

Subscribe to `web_proposal_url_created` webhook event using the [Webhook dashboard](https://v2-sandbox.aurorasolar.com/settings/api/webhooks) or via Webhooks API, pointing webhooks to your application that will process them.

![](https://files.readme.io/4bb644e-Screen_Shot_2022-12-01_at_7.03.45_PM.png)

```jsx
//POST <https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/webhooks>

  {
  "webhook": {
    "description": "Web proposal URL created",
    "event": "web_proposal_url_created",
    "url_template": "<https://www.yourcomany.com/web_proposal_url_created_webhooks?design_id=<DESIGN_ID>&source=<SOURCE>"
    "enabled": true
  }
}
```

# Step 2. On webhook receipt, retrieve the URL.

***

On the `web_proposal_url_created` webhook receipt, use Retrieve Web Proposal API to retrieve the URL and store it in the target system.

```json
/Webhook query string payload
?design_id=2v52d42f-7b03-40f4-94be-e393ed8c5386&source=APP

//GET https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/web_proposal

//HTTP 200 response
{
  "url": "https://v2.aurorasolar.com/e-proposal/_df-JNW4uAez5a7KThnOaBhr8auE74Qw1-oYOzrS_SI",
  "url_expired": false
}
```

# Step 3. If URL has expired, re-generate it.

***

Generate a Web Proposal URL and store it in the target system.

```jsx

// POST https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/web_proposal/generate_url

//HTTP 200 response
{
  "url": "https://v2.aurorasolar.com/e-proposal/_df-JNW4uAez5a7KThnOaBhr8auE74Qw1-oYOzrS_SI",
  "url_expired": false
}

```

***

# Considerations

***

* By default, the Web Proposal URL expires after 30 days. Please contact your Aurora account team if you need to increase that default.
* You can limit webhooks to only URLs created in the UI (as opposed to API) using a [webhook filter](https://docs.aurorasolar.com/reference/webhooks#filters) `{"<SOURCE>": ["APP"]}` .
* Consider using a webhook test site like <https://webhook.site> to verify that your webhook subscription is live.