Skip to main content
Starts asynchronous AI outline generation for the specified proposal. The proposal must contain transcribed project spec content or media transcripts — if no qualifying content is present, the request returns a 400 error. Once triggered, use Get Proposal Outline to check progress or listen for the Proposal Outline Status Changed webhook.
Outline generation is asynchronous. The 200 response confirms the job has been queued, but the outline will not be available immediately. Poll Get Proposal Outline and check for status: "Completed", or subscribe to the Proposal Outline Status Changed webhook.

Request

POST /public/proposals/{ProposalId}/ai/outline

Headers

Accept
string
required
Must be application/json.
Content-Type
string
required
Must be application/json.
X-MSS-API-APPID
string
required
Your API Application Key.
X-MSS-API-USERKEY
string
required
Your User API Key.
X-MSS-CUSTOM-DATE
string
required
Current UTC timestamp in RFC 7231 format.
X-MSS-SIGNATURE
string
required
HMAC-SHA256 signature, Base64-encoded.

Path parameters

ProposalId
integer
required
Proposal identifier. Must correspond to an existing proposal that contains transcribed project spec content or media transcripts. If no qualifying content exists, the request is rejected with a 400 error.

Body parameters

proposalId
integer
required
Must match the ProposalId path parameter. Proposal identifier used to associate the outline generation job.

Response

Success

A 200 response confirms the outline generation job has been queued.
proposalId
integer
required
The ID of the proposal for which outline generation was triggered. Use this value to poll Get Proposal Outline for results.
status
string
required
Initial generation status, indicating the job has been queued. Will typically be Generating.

Error codes

CodeMeaning
400Bad request — the proposal does not contain transcribed media or project specification content required for outline generation.
401Not authorized — invalid credentials or incorrect HMAC signature.
403Forbidden — your account does not have permission for this API call.
404Proposal not found.

Example

curl -i -X POST \
  'https://api.portal.io/public/proposals/12345/ai/outline' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-MSS-API-APPID: YOUR_API_APPID' \
  -H 'X-MSS-API-USERKEY: YOUR_API_USERKEY' \
  -H 'X-MSS-CUSTOM-DATE: Thu, 17 Apr 2026 12:00:00 GMT' \
  -H 'X-MSS-SIGNATURE: Base64EncodedHMACSHA256Signature' \
  -d '{"proposalId": 12345}'
Response
{
  "proposalId": 12345,
  "status": "Generating"
}