Skip to main content
POST
/
v1
/
questionnaire
/
upload-and-parse
Start questionnaire parsing
curl --request POST \
  --url https://api.trycomp.ai/v1/questionnaire/upload-and-parse \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "organizationId": "org_abc123",
  "fileName": "vendor-security-questionnaire.xlsx",
  "fileType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
'
{
  "runId": "<string>",
  "publicAccessToken": "<string>"
}

Authorizations

X-API-Key
string
header
required

API key for authentication

Body

application/json
organizationId
string
required

Organization ID (set automatically from auth context).

Example:

"org_abc123"

fileName
string
required

Name of the questionnaire file.

Example:

"vendor-security-questionnaire.xlsx"

fileType
string
required

MIME type of the file (PDF, image, XLSX, CSV, TXT).

Example:

"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

fileData
string

Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign and pass s3Key — base64 through an LLM is impractically slow. Provide exactly one of fileData or s3Key.

s3Key
string

Key of a file already uploaded via /v1/uploads/presign (purpose=questionnaire). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key.

Example:

"org_abc/uploads/questionnaire/1735000000-questionnaire.xlsx"

Response

200 - application/json

Upload file and trigger async parsing. Returns runId for realtime tracking.

runId
string
publicAccessToken
string