> ## Documentation Index
> Fetch the complete documentation index at: https://docs.portal.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> A record of additions, changes, and fixes to the Portal.io API. Check here to see what's new and whether your integration needs updating.

This page tracks changes to the Portal.io API itself — new endpoints, changed behavior, and deprecations. Documentation-only updates are not listed here.

Entries are in reverse chronological order. Breaking changes are marked with 🚨 so you can quickly identify anything that may require updates to your integration.

***

## April 14, 2026

**Proposal management, AI Builder, and webhook endpoints**

<Accordion title="Added — Proposal write endpoints">
  New POST endpoints for the full proposal lifecycle:

  * [`POST /public/proposals`](/api-reference/proposals/create-proposal) — Create a new proposal
  * [`POST /public/proposals/{ProposalId}`](/api-reference/proposals/update-proposal) — Update proposal name and status
  * [`POST /public/proposals/{ProposalId}/description`](/api-reference/proposals/update-description) — Update proposal description
  * [`POST /public/proposals/{ProposalId}/internalnotes`](/api-reference/proposals/update-internal-notes) — Update internal notes
  * [`POST /public/proposals/{ProposalId}/contact/{ContactId}`](/api-reference/proposals/assign-contact) — Assign a contact to a proposal
  * [`POST /public/proposals/{ProposalId}/location/{LocationId}`](/api-reference/proposals/assign-location) — Assign a location to a proposal (triggers tax calculation)
  * [`POST /public/proposals/{ProposalId}/area`](/api-reference/proposals/add-area) — Add an area to a proposal
  * [`POST /public/proposals/{ProposalId}/area/{AreaId}/option`](/api-reference/proposals/add-area-option) — Add an option to an area
  * [`POST /public/proposals/{ProposalId}/area/{AreaId}/option/{OptionId}/clientdescription`](/api-reference/proposals/update-area-client-description) — Update area option client description
  * [`POST /public/proposals/{ProposalId}/area/{AreaId}/option/{OptionId}/installernotes`](/api-reference/proposals/update-area-installer-notes) — Update area option installer notes
</Accordion>

<Accordion title="Added — AI Builder endpoints">
  New endpoints for AI-powered proposal generation:

  * [`POST /public/ai/content`](/api-reference/ai-builder/upload-content) — Upload reference content for AI proposals
  * [`DELETE /public/ai/content/{ContentId}`](/api-reference/ai-builder/delete-content) — Delete uploaded content
  * [`GET /public/ai/content`](/api-reference/ai-builder/list-content) — List uploaded content
  * [`POST /public/ai/generate-outline`](/api-reference/ai-builder/generate-outline) — Generate a proposal outline from uploaded content
  * [`GET /public/ai/outline/{OutlineId}`](/api-reference/ai-builder/get-outline) — Retrieve a generated outline
  * [`POST /public/ai/build-proposal`](/api-reference/ai-builder/build-proposal) — Build a full proposal from an outline
</Accordion>

<Accordion title="Added — Webhook subscription endpoints">
  New endpoints for managing webhook subscriptions and receiving real-time event notifications:

  * [`POST /public/webhook/subscribe`](/api-reference/webhooks/create-subscription) — Create a webhook subscription
  * [`GET /public/webhook/subscriptions`](/api-reference/webhooks/list-subscriptions) — List active subscriptions
  * [`POST /public/webhook/subscription/{SubscriptionId}`](/api-reference/webhooks/update-subscription) — Update a subscription
  * [`DELETE /public/webhook/unsubscribe/{SubscriptionId}`](/api-reference/webhooks/delete-subscription) — Delete a subscription

  Supported event types: `proposal.status_changed`, `proposal.build.status_update`, `proposal.outline.status_update`. See [Webhook Events](/api-reference/webhooks/events) for payload details.
</Accordion>
