Skip to main content
POST
/
public
/
api
/
proposals
/
{ProposalId}
/
ai
/
content
curl -i -X POST \
  'https://api.portal.io/public/proposals/12345/ai/content' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -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 'Name=Project+Discovery+Call' \
  -d 'IsMultiChunkUpload=false'
{
  "id": 123,
  "name": "<string>",
  "createdDate": "2023-11-07T05:31:56Z",
  "userCreated": {
    "id": 123,
    "firstName": "<string>",
    "lastName": "<string>",
    "email": "<string>"
  },
  "summary": "<string>"
}
Uploads one or more files as AI source content for the specified proposal. At least one file must be included. When IsMultiChunkUpload is true, the upload is processed as a multi-chunk upload; otherwise files are processed as regular uploads. The proposal must be in Draft status to accept new content.
curl -i -X POST \
  'https://api.portal.io/public/proposals/12345/ai/content' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -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 'Name=Project+Discovery+Call' \
  -d 'IsMultiChunkUpload=false'
Response
{
  "id": 42,
  "name": "Project Discovery Call",
  "summary": "",
  "status": "Uploaded",
  "sourceType": "Text",
  "createdDate": "2026-04-17T12:00:00Z",
  "userCreated": {
    "id": 7,
    "firstName": "Jane",
    "lastName": "Smith",
    "email": "jane.smith@example.com"
  }
}

Headers

Accept
enum<string>
required

Accept Header

Available options:
application/json
X-MSS-API-APPID
string
required

Application Id

X-MSS-CUSTOM-DATE
string
required

A date timestamp of the request

X-MSS-SIGNATURE
string
required

A signature for the request

X-MSS-API-USERKEY
string
required

User API Key

Path Parameters

ProposalId
integer<int32>
required

Numeric identifier of the proposal to which the AI-generated content will be attached. Must be a positive integer. The proposal typically must be in Draft status to accept new content.

Body

application/x-www-form-urlencoded
Name
string
required

Human-readable name or title for the content being uploaded. This value is used for display and search. Provide a concise descriptive name.

IsMultiChunkUpload
boolean

Optional flag indicating whether the client will upload the content in multiple chunks (true) or as a single request (false or omitted). When true the server will expect chunked upload semantics and assemble the final file.

Response

Success

PublicAiProposalContentPostResponse

id
integer<int32>
required

Unique identifier assigned to the created AI content item. Use this id for subsequent operations (update, delete, fetch).

name
string
required

Human-readable name/title of the created content item. Matches the 'Name' value provided in the request.

status
enum<string>
required

Lifecycle status of the content item (e.g. Draft, Published, Archived). Use allowable values from SpecContentStatuses.

Available options:
Uploaded,
Processing,
Transcribed,
Invalid
sourceType
enum<string>
required

Type of the source file for the content (e.g. Text, Audio, Video). Use allowable values from SourceFileTypes.

Available options:
Text,
Audio,
Video
createdDate
string<date-time>
required

Timestamp (UTC) when the content item was created. ISO 8601 format.

userCreated
SimpleUserModel · object
required

SimpleUserModel

summary
string

Optional short summary or snippet of the content generated by the AI. Useful for preview and search.