Docx Summaries

Download docx (Word document) summaries for a protocol template.

GET /v1/summaries/docx

Use this endpoint for protocols with summaryType: "docx". Each result is a short-lived signed URL to download the generated .docx file.

Parameters

ParameterTypeRequiredDefaultDescription
protocolIdUUIDYesProtocol template ID
recordIdUUIDNoFilter to a specific meeting
dateFromstringNoFilter from this date (ISO 8601)
dateTostringNoFilter until this date (ISO 8601)
limitintegerNo20Max results (max: 50)
offsetintegerNo0Skip results for pagination

Response

{
  "success": true,
  "data": [
    {
      "recordId": "3f9a1c72-8e04-4b21-9d6a-2c7e5f81a4d0",
      "createdAt": "2026-04-10T14:30:00Z",
      "downloadUrl": "https://storage.../signed-docx-url",
      "expiresIn": 3600
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 20,
    "offset": 0
  }
}

The downloadUrl is a signed URL that expires after expiresIn seconds. Download the file before it expires, or call the endpoint again to get a fresh URL.

Examples

cURL
curl -X GET "https://api.optiverse.ai/external-api/v1/summaries/docx?protocolId=00000000-0000-4000-a000-000000000002&limit=5" \
  -H "Authorization: Bearer optiuser_v1_your_key_here"
JavaScript
import { writeFile } from "node:fs/promises";

const response = await fetch(
  `${BASE_URL}/v1/summaries/docx?protocolId=00000000-0000-4000-a000-000000000002&limit=5`,
  { headers: { "Authorization": `Bearer ${API_KEY}` } }
);

const { data } = await response.json();
for (const item of data) {
  const doc = await fetch(item.downloadUrl);
  const buffer = Buffer.from(await doc.arrayBuffer());
  await writeFile(`${item.recordId}.docx`, buffer);
}