Recorder/Survey

Create Recorder

Create a recorder and integrate with your platform easily.

All the required fields are as below:

name - Name of the recorder

All the other fields are optional. Your recorder will be created automatically.

description - Assign description of the recorder for internal purpose.

folderId - Save all your recordings to the assigned FolderId.


Duration of the recorder:

  • minDuration - 15 seconds (min) & 5 min (max)

  • Pass the duration in seconds

  • maxDuration - 10 seconds (min) & 3 hours (max)

  • Pass the duration in seconds


Source Language:

  • You can pass the sourceLanguage as a code.

  • Other language codes available at the top of the page.


Recorder options:

  • We allow to support creating recorder with the multiple options such as:

  • audio - Audio recorder

  • video - Video recorder

  • screeShare - Allow to screen share on browser (Mobile not supported)

  • uploadFile - Allow to upload various file formats

  • allowMultiple - Supporting multiple file uploads


Notifications:

upload - Recieve an email notification when anyone uploads a recording on the recorder

client - When your user submits a recording (have the email address in a form) - they will receive an submittion email


Client Information Questions:

name - Ask for their name

email - Ask for their email address

questions - Check an API endpoint to update different types of questions.

post/recorder/create

Request

  • Base URL: https://api.speakai.co/v1
  • URL: https://api.speakai.co/v1/recorder/create
  • Auth: API key in header x-speakai-key and API key in header x-access-token

Request body

namestring required

Name the recorder. This is the only field you have to send. Required. An empty or whitespace-only value is rejected because the validator is the schema.trim with no.allow(''). The value is stored exactly as you send it, including any surrounding whitespace.

descriptionstring

Describe the recorder for your own reference. Optional. An empty string is allowed.

isAutoAnalyzeboolean

Analyze each recording automatically as soon as it is submitted. Optional. If you leave it out, the recorder is saved with automatic analysis on, which is the default on the Recorder model.

sourceLanguagestring

Set the spoken language Speak transcribes recordings in. Optional. Must be one of the transcription language codes the server compiles at start up from the static list (137 entries, including auto and multi). An unrecognized code returns 400 with the message 'sourceLanguage must be a valid transcription language code'. GET /v1/media/supportedLanguages returns the list the server is currently serving, which can be refreshed from the database at runtime while the accepted set for this field stays as it was at start up, so the two can drift. If you leave the field out, the recorder is saved with en-US.

folderIdstring

Save every recording from this recorder into the folder you name here. Optional. An empty string is allowed and is the only value that makes Speak pick your first folder. Leaving the field out is not the same: the recorder is saved with an empty folderId instead. A folderId that does not exist in your company returns 400 with 'Folder not found'.

durationobject

Set how long a recording is allowed to run. Optional. Two optional number keys, both in seconds. minDuration accepts 0 to 300, maxDuration accepts 15 to 10800. The create handler applies 15 and 300 when you leave the object or either key out.

notificationobject

Choose who gets an email when a recording comes in. Optional. Two optional booleans, both treated as true when you leave them out. upload emails the users in notifyUsers when a recording arrives. client emails the respondent a confirmation, and only fires when they gave an email address.

optionsobject

Turn the individual capture and upload modes on or off. Optional. Keys are all optional booleans unless noted: audio (true when omitted), video (true), screenShare (true), liveTranscription (false, also accepts null), and upload, a nested object with file (true), text (false), multiple (false) and url (true). The create handler applies those fallbacks.

notifyUsersstring[]

List the user IDs that get emailed when a recording arrives. Optional. Each item is a non-empty string. Stored under the recorder's notification block and used only when notification.upload is on.

clientInformationobject

Decide what you ask a respondent for before they record. Optional. Reuses the updateQuestions schema at:33-46. Keys: name (boolean, true when omitted), email (boolean, true when omitted), questions (array, items unconstrained), and consent, a nested object with isEnabled (boolean, false), title (string, empty allowed), description (string, empty allowed), yesButtonLabel (string, 'Yes'), noButtonLabel (string, 'No'), isRequired (boolean, false) and fieldId (string, empty allowed, ''). The whole object is stored as sent.

metaobject

Customize the recorder page. On create, only the layout fields below take effect. Optional. The create handler reads only customCSS, hideWaveform, hideTitle, hideDescription, hideSubmitButton, submitButtonLabel, countdown and hideImages. customCSS is capped at 50000 characters and is run through a CSS sanitizer before it is stored; when you leave it out or send an empty string, the company's stored customCSS is used. The booleans are false when omitted and submitButtonLabel is 'Upload' when omitted. primaryColor, backgroundImg, logo, fontColor, fontFamily and theme are accepted by the validator but ignored on create: a new recorder always inherits those six from your company branding. Use PUT /recorder/settings/{recorderId} to change them.

assignTostring

Accepted by the request validator but never used. Optional, empty string allowed. The create handler never reads this field and nothing in the recorder module references it, so sending it has no effect.

Response

OK

statusstring

Changes

No recorded changes to this operation across all 2 revisions of this API.