---
title: "Create a transcript"
method: POST
path: "/v1/org/{orgId}/transcript"
tags: ["transcript"]
---

# Create a transcript

`POST /v1/org/{orgId}/transcript`

## Path parameters

- `orgId` string, required

## Request body

- CreateTranscript
  - `calendarEntryId` string — optional calendar entry ID
  - `externalCalendarEntryId` string — optional external calendar event id from the recording system (e.g. the Google Calendar event id)
  - `externalId` string, required — external ID of the recording
  - `externalUrl` string — URL to view/watch the recording on the external system
  - `recordingSystem` string, required — system type used to record
  - `startAt` string, required — timestamp of the start time (inclusive)
  - `untilAt` string, required — timestamp of the ending time (exclusive)
  - `attendees` TranscriptAttendee[], required — list of attendees
    - `id` string, required — unique speaker identifier for the transcript (equals personId if available)
    - `personId` string — ChartHop person ID, if in the system
    - `email` string — email address, if available
    - `name` string — display name, if available
    - `title` string — job title, if available
    - `orgId` string — ChartHop org ID, if available
    - `orgName` string — name of the person's organization, if available
  - `tags` string[] — tags on the transcript, such as customer name
  - `language` string — ISO 639-1 (two-letter) language code of the meeting
  - `label` string, required — meeting title
  - `description` string — very short description of the meeting discussion (1-3 sentences)
  - `summary` string — detailed summary of the meeting discussion (a few paragraphs)
  - `sensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE', required — sensitivity level of the transcript
  - `shareAccess` ShareAccess[] — list of users and groups who have the transcript shared with them
    - `access` 'NONE' | 'LIMITED_READ' | 'LIMITED_WRITE' | 'STANDARD_READ' | 'STANDARD_WRITE' | 'COMPENSATION_READ' | 'FULL_READ' | 'COMP_PLANNING_PARTICIPANT' | 'COMPENSATION_WRITE' | 'WRITE' | 'COMPENSATION_OWNER' | 'OWNER', required — access permission level
    - `userId` string — user id
    - `groupId` string — group id
    - `fields` string — fields

## Response `201`

transcript created

- Transcript
  - `id` string, required — globally unique id
  - `orgId` string, required — parent organization id
  - `calendarEntryId` string — optional calendar entry ID
  - `externalCalendarEntryId` string — optional external calendar event id from the recording system (e.g. the Google Calendar event id)
  - `externalId` string, required — external ID of the recording
  - `externalUrl` string — URL to view/watch the recording on the external system
  - `recordingSystem` string, required — system type used to record
  - `startAt` string, required — timestamp of the start time (inclusive)
  - `untilAt` string, required — timestamp of the ending time (exclusive)
  - `attendees` TranscriptAttendee[], required — list of attendees
    - `id` string, required — unique speaker identifier for the transcript (equals personId if available)
    - `personId` string — ChartHop person ID, if in the system
    - `email` string — email address, if available
    - `name` string — display name, if available
    - `title` string — job title, if available
    - `orgId` string — ChartHop org ID, if available
    - `orgName` string — name of the person's organization, if available
  - `tags` string[] — tags on the transcript, such as customer name
  - `language` string — ISO 639-1 (two-letter) language code of the meeting
  - `label` string, required — meeting title
  - `description` string — very short description of the meeting discussion (1-3 sentences)
  - `summary` string — detailed summary of the meeting discussion (a few paragraphs)
  - `hasTranscriptContent` boolean, required — whether transcript content (the JSONL utterance file) has been stored for this transcript; the content's storage location is derived from the transcript id, so no path is stored
  - `sensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE', required — sensitivity level of the transcript
  - `shareAccess` ShareAccess[] — list of users and groups who have the transcript shared with them
    - `access` 'NONE' | 'LIMITED_READ' | 'LIMITED_WRITE' | 'STANDARD_READ' | 'STANDARD_WRITE' | 'COMPENSATION_READ' | 'FULL_READ' | 'COMP_PLANNING_PARTICIPANT' | 'COMPENSATION_WRITE' | 'WRITE' | 'COMPENSATION_OWNER' | 'OWNER', required — access permission level
    - `userId` string — user id
    - `groupId` string — group id
    - `fields` string — fields
  - `createId` string — created by user id
  - `createBehalfId` string — created on behalf of user id
  - `createAt` string — created timestamp
  - `updateId` string — last updated by user id
  - `updateBehalfId` string — last updated on behalf of user id
  - `updateAt` string — last updated timestamp
  - `deleteId` string — deleted by user id
  - `deleteBehalfId` string — deleted on behalf of user id
  - `deleteAt` string — deleted timestamp

## Other responses

- `400` — invalid data
- `401` — not authorized
- `403` — permission denied

---

[API](https://skmtc.net/charthop/apis/charthop-api.md) · [All operations](https://skmtc.net/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/charthop/charthop-api/revisions/50a1edd6b27e/schema)
