---
title: "Adds multiple voice records."
method: POST
path: "/v2/voicedata"
tags: ["voiceData"]
---

# Adds multiple voice records.

`POST /v2/voicedata`

## Request

- Base URL: `https://developers.globalrelay.com`
- URL: `https://developers.globalrelay.com/v2/voicedata`
- Auth: none declared. Required headers: `X-SubType`
- TypeScript: <https://skmtc.dev/globalrelay/apis/voice-archiving-api/docs/v2/voicedata/post.ts> (a function with typed inputs; its response is checked against the schema)

Send metadata, source transcription and voice records to the archive with an option of transcription being generated by Global Relay

## Headers

- `X-SubType` string, required

## Request body

- VoiceData: The top level voice data request.
  - `requestInfo` RequestInfo, required: Information for routing the email to the archive.
    - `requestId` string, required: Client generated uuid for tracking purposes
  - `callOverview` CallOverview, required
    - `callId` string, required: This will be used for threading across subtypes in A10.
    - `owner` User, required: One of the below identifiers (Email, Phone or Name) should be provided
      - `name` string: User name
      - `company` string: Users company name
      - `detail` string: Addition information about the user (role, location...)
      - `phone` string: Phone number
      - `email` string: Email address
      - `channel` integer: Used to provide mapping between the user and channel
      - `joinTimeMS` integer: User join time
      - `leaveTimeMS` integer: User leave time
      - `identityType` 'internal' | 'external' | 'bot': Indicates what type the user is
    - `callType` string: the type of call.
    - `direction` 'inbound' | 'outbound': direction of call
    - `stopReason` 'hangup' | 'owner_hangup' | 'remote_hangup' | 'forward' | 'unsuccessful' | 'unknown': reason for call ending.
    - `deviceName` string: the name of the device which made the call.
    - `isExternal` boolean: Flag to comment on whether user is external or internal to the organisation
    - `subjectOverride` string: If populated overrides the subject header of the email.
    - `callProperties` CallProperty[]
      - `name` string, required: Property name
      - `value` string, required: Property value
      - `xheader` boolean: Defines if a xheader is to be created in the Archive for this conversation property. The displayed header name will be prefixed with "X-GR-OC-"
      - `hidden` boolean: Defines if the call property should be hidden from the call property table. This should be used in conjunction with the xheader property. If the xheader property is set to false and this is set to true, the call property will not be rendered in the email.
  - `voiceRecords` VoiceRecord[], required: Voice files, with additional information
    - `startTime` integer, required: Start time of call
    - `stopTime` integer: End time of call
    - `timeZone` string: Time zone identifier
    - `participants` User[]
      - `name` string: User name
      - `company` string: Users company name
      - `detail` string: Addition information about the user (role, location...)
      - `phone` string: Phone number
      - `email` string: Email address
      - `channel` integer: Used to provide mapping between the user and channel
      - `joinTimeMS` integer: User join time
      - `leaveTimeMS` integer: User leave time
      - `identityType` 'internal' | 'external' | 'bot': Indicates what type the user is
    - `recordingFile` RecordingFile
      - `filename` string: Name of the audio file
      - `description` string: Description of audio file
      - `fileKey` string: Key used to store file on object store
  - `extraFiles` FileInfo[]: Additional files to be attached to generated email
    - `filename` string: File name of additional file
    - `fileKey` string: Key used to store file on object store
    - `fileHref` string: Hyperlink for additional file
    - `description` string: File description
    - `isTranscript` boolean: True if file represents a transcript, default is false.

## Response `200`

OK

- ApiResponse
  - `reconciliationId` string, required: Unique ID assigned by API service for each request.

## Other responses

- `202`: Accepted
- `400`: Bad Request
- `404`: Record Not Found
- `429`: Rate Limit for this endpoint has been exceeded. Check headers for more information.
- `500`: Internal Server Error

---

[API](https://skmtc.dev/globalrelay/apis/voice-archiving-api.md) - [All operations](https://skmtc.dev/globalrelay/apis/voice-archiving-api/llms.txt) - [OpenAPI document](https://skmtc.dev/globalrelay/apis/voice-archiving-api/revisions/d6829781222b?raw)
