Speechmind API Documentation
Welcome to the SpeechMind GraphQL API v2.
This reference document provides detailed information about the endpoints and features of the SpeechMind API v2. It covers the available queries, mutations, types, and input objects, along with usage examples and expected input/output formats.
This updated version of the API introduces enhanced features and improved functionality across the three main processes explained in the next chapters.
Authentication is required to access most API features. Clients must first obtain a JSON Web Token (JWT) through the authentication endpoint and include it in the Authorization header of all subsequent requests:
API Endpoints
https://api-v2.speechmind.com/external/v2/graphql
Headers
# // Your API key
x-api-key: <your-api-key>
Version
2.0.0
Authentication Guide for using the API
To access the SpeechMind API, you need to authenticate using an API key. Follow the steps below to generate and use your API key:
🔑 Steps to Generate Your API Key
- Log in to your SpeechMind account.
- Navigate to Account > Organisation you find a Developers API section.
- Click on Generate New API Key.
- Copy the generated key and store it securely.
🚀 Using the API Key
Include your API key in the request headers under the x-api-key field when making API calls.
Example Request Header
x-api-key: <your-api-key>
Queries
getAllProjects
Description
It returns all projects for a user.
Response
Returns [ApiProjectType]
Example
Query
query getAllProjects {
getAllProjects {
slug
name
}
}
Response
{
"data": {
"getAllProjects": [
{
"slug": "abc123",
"name": "xyz789"
}
]
}
}
getProtocolBySlug
Description
It validates the user's authentication using an API key passed in the request header and returns the protocol associated with the specified slug.
Response
Returns an EditSpeakerDataTypeWithSpeaker
Arguments
| Name | Description |
|---|---|
protocolSlug - String!
|
ID of the protocol |
Example
Query
query getProtocolBySlug($protocolSlug: String!) {
getProtocolBySlug(protocolSlug: $protocolSlug) {
protocol {
...ApiProtocolTypeFragment
}
speakerList
summaryPerSpeakerList {
...ApiSummaryPerSpeakerItemTypeWithSpeakerFragment
}
attendees {
...ApiSpeakerTypeFragment
}
serverLoad
}
}
Variables
{"protocolSlug": "xyz789"}
Response
{
"data": {
"getProtocolBySlug": {
"protocol": ApiProtocolType,
"speakerList": GenericScalar,
"summaryPerSpeakerList": [
ApiSummaryPerSpeakerItemTypeWithSpeaker
],
"attendees": [ApiSpeakerType],
"serverLoad": "abc123"
}
}
}
getProtocolsByProject
Description
It returns all the documents from a project.
Response
Returns [ApiProtocolType]
Arguments
| Name | Description |
|---|---|
slug - String!
|
Slug of the project |
Example
Query
query getProtocolsByProject($slug: String!) {
getProtocolsByProject(slug: $slug) {
slug
name
date
language
empty
editStage
creatingStep
creatingStepList
status
renamedSpeakers
}
}
Variables
{"slug": "xyz789"}
Response
{
"data": {
"getProtocolsByProject": [
{
"slug": "xyz789",
"name": "xyz789",
"date": "xyz789",
"language": "xyz789",
"empty": false,
"editStage": true,
"creatingStep": "xyz789",
"creatingStepList": ["abc123"],
"status": false,
"renamedSpeakers": false
}
]
}
}
getRephraseElementByProtocolSlug
Description
It validates the user's authentication using an API key passed in the request header and returns the rephrase element associated with the specified protocol slug.
Response
Returns [RephraseReturnObject]
Arguments
| Name | Description |
|---|---|
protocolSlug - String!
|
Example
Query
query getRephraseElementByProtocolSlug($protocolSlug: String!) {
getRephraseElementByProtocolSlug(protocolSlug: $protocolSlug) {
agendaItemId
agendaItemDepth
refactoredSuggestion
}
}
Variables
{"protocolSlug": "xyz789"}
Response
{
"data": {
"getRephraseElementByProtocolSlug": [
{
"agendaItemId": "xyz789",
"agendaItemDepth": 987,
"refactoredSuggestion": ["abc123"]
}
]
}
}
getResults
Response
Returns an ApiResultsType
Arguments
| Name | Description |
|---|---|
protocolSlug - String!
|
ID of the protocol |
Example
Query
query getResults($protocolSlug: String!) {
getResults(protocolSlug: $protocolSlug) {
creationDone
protocol {
...ApiProtocolTypeFragment
}
agendaItemList {
...ApiAgendaItemTypeFragment
}
taskItemList {
...ApiTaskTypeFragment
}
}
}
Variables
{"protocolSlug": "abc123"}
Response
{
"data": {
"getResults": {
"creationDone": true,
"protocol": ApiProtocolType,
"agendaItemList": [ApiAgendaItemType],
"taskItemList": [ApiTaskType]
}
}
}
getTextsegmentsByProtocolAndPage
Description
It validates the user's authentication using an API key passed in the request header and returns the text segments associated with the specified protocol slug and page number.
Response
Returns a TextsegmentListTypeV2
Example
Query
query getTextsegmentsByProtocolAndPage(
$protocolSlug: String!,
$page: Int!
) {
getTextsegmentsByProtocolAndPage(
protocolSlug: $protocolSlug,
page: $page
) {
textsegmentList {
...ApiTextsegmentTypeV2Fragment
}
}
}
Variables
{"protocolSlug": "xyz789", "page": 987}
Response
{
"data": {
"getTextsegmentsByProtocolAndPage": {
"textsegmentList": [ApiTextsegmentTypeV2]
}
}
}
getTranscriptByAgendaItemId
Description
It validates the user's authentication using an API key passed in the request header and returns the text segments between the specified start and end IDs.
Response
Returns [ApiTextsegmentTypeV2]
Example
Query
query getTranscriptByAgendaItemId(
$protocolSlug: String!,
$agendaItemId: String!
) {
getTranscriptByAgendaItemId(
protocolSlug: $protocolSlug,
agendaItemId: $agendaItemId
) {
id
speakerObj {
...ApiSpeakerTypeFragment
}
textJson {
...TranscriptSegmentFragment
}
pos
}
}
Variables
{
"protocolSlug": "abc123",
"agendaItemId": "abc123"
}
Response
{
"data": {
"getTranscriptByAgendaItemId": [
{
"id": "xyz789",
"speakerObj": ApiSpeakerType,
"textJson": [TranscriptSegment],
"pos": 123
}
]
}
}
getUploadUrl
Description
It validates the user's authentication using an API key passed in the request header and returns a presigned URL for uploading files to AWS S3.
Response
Returns an AWSUrlObject
Arguments
| Name | Description |
|---|---|
uniqueObjName - String!
|
Unique name of the audio file together with the file ending (e.g. .ogg, .mp3, .mp4) |
Example
Query
query getUploadUrl($uniqueObjName: String!) {
getUploadUrl(uniqueObjName: $uniqueObjName) {
url
fields
}
}
Variables
{"uniqueObjName": "xyz789"}
Response
{
"data": {
"getUploadUrl": {
"url": "xyz789",
"fields": GenericScalar
}
}
}
getUsageRecordsByApiKey
Description
Get the usage records by API key.
Response
Returns [ApiUsageRecordType]
Example
Query
query getUsageRecordsByApiKey {
getUsageRecordsByApiKey {
id
email
amount
createdAt
}
}
Response
{
"data": {
"getUsageRecordsByApiKey": [
{
"id": "abc123",
"email": "abc123",
"amount": 123,
"createdAt": "xyz789"
}
]
}
}
Mutations
addGlossary
Description
Add a glossary entry for the authenticated API user and apply it retroactively to all agenda items, text segments, and task items of the specified protocol. The glossary maps a spoken/misrecognised term to its correct spelling.
Response
Returns an AddGlossaryMutation
Example
Query
mutation addGlossary(
$correctWord: String!,
$protocolSlug: String!,
$term: String!
) {
addGlossary(
correctWord: $correctWord,
protocolSlug: $protocolSlug,
term: $term
) {
success
}
}
Variables
{
"correctWord": "abc123",
"protocolSlug": "abc123",
"term": "abc123"
}
Response
{"data": {"addGlossary": {"success": true}}}
createApiOrganization
Response
Returns a CreateApiOrganizationMutation
Arguments
| Name | Description |
|---|---|
name - String!
|
Example
Query
mutation createApiOrganization($name: String!) {
createApiOrganization(name: $name) {
organization {
...ApiOrganizationTypeFragment
}
plainKey
}
}
Variables
{"name": "xyz789"}
Response
{
"data": {
"createApiOrganization": {
"organization": ApiOrganizationType,
"plainKey": "xyz789"
}
}
}
createProject
Description
Create a new project. User can upload files into a project. Pass the resulting slug into the import audio mutation.
Response
Returns a CreateProjectMutation
Arguments
| Name | Description |
|---|---|
name - String!
|
Name of the project |
Example
Query
mutation createProject($name: String!) {
createProject(name: $name) {
project {
...ApiProjectTypeFragment
}
}
}
Variables
{"name": "abc123"}
Response
{"data": {"createProject": {"project": ApiProjectType}}}
deleteAgendaItemById
Description
Delete a specific agenda item by its ID. Use this when text segments were assigned to a TOP that does not exist in the external system and the item should be removed entirely. All associated AgendaItemText and ResolutionItem records are cascade-deleted.
Response
Returns a DeleteAgendaItemByIdMutation
Arguments
| Name | Description |
|---|---|
agendaItemId - Int!
|
ID of the agenda item to delete |
Example
Query
mutation deleteAgendaItemById($agendaItemId: Int!) {
deleteAgendaItemById(agendaItemId: $agendaItemId) {
success
}
}
Variables
{"agendaItemId": 123}
Response
{"data": {"deleteAgendaItemById": {"success": false}}}
deleteAudioByProtocolSlug
Response
Returns a DeleteAudioByProtocolSlugMutation
Arguments
| Name | Description |
|---|---|
protocolSlug - String!
|
Example
Query
mutation deleteAudioByProtocolSlug($protocolSlug: String!) {
deleteAudioByProtocolSlug(protocolSlug: $protocolSlug) {
success
protocol {
...ApiProtocolTypeFragment
}
}
}
Variables
{"protocolSlug": "xyz789"}
Response
{
"data": {
"deleteAudioByProtocolSlug": {
"success": true,
"protocol": ApiProtocolType
}
}
}
deleteProtocol
Response
Returns a DeleteProtocolMutation
Arguments
| Name | Description |
|---|---|
protocolSlug - String!
|
Example
Query
mutation deleteProtocol($protocolSlug: String!) {
deleteProtocol(protocolSlug: $protocolSlug) {
success
}
}
Variables
{"protocolSlug": "abc123"}
Response
{"data": {"deleteProtocol": {"success": false}}}
extendAgendaItem
Description
Extend an agenda item by its ID by user input. It validates the user's authentication using an API key passed in the request header and extends the content of the agenda item in case it's too short.
Response
Returns an ExtendAgendaItemByIdMutation
Example
Query
mutation extendAgendaItem(
$agendaItemId: String!,
$userInput: String
) {
extendAgendaItem(
agendaItemId: $agendaItemId,
userInput: $userInput
) {
rephraseElement {
...ApiRephraseElementFragment
}
}
}
Variables
{
"agendaItemId": "abc123",
"userInput": "abc123"
}
Response
{
"data": {
"extendAgendaItem": {
"rephraseElement": ApiRephraseElement
}
}
}
initProtocol
Description
Mutation to upload and register an audio file for processing. This mutation allows users to upload an audio file and register it for further processing. It validates the user's authentication using an API key passed in the request header and processes the provided audio metadata.
Response
Returns an InitProtocolMutation
Arguments
| Name | Description |
|---|---|
agendaItemList - [AgendaItemListInput]
|
Agenda list of the audio file |
date - Date!
|
Date of the audio file |
language - String!
|
Language of the audio file |
name - String!
|
Name of the audio file |
projectSlug - String!
|
Slug of the project |
speakerList - [PersonInputList]
|
List of speakers to rename |
typeOfDocument - String!
|
Type of the document |
uniqueObjName - String!
|
Unique Name of the audio file |
Example
Query
mutation initProtocol(
$agendaItemList: [AgendaItemListInput],
$date: Date!,
$language: String!,
$name: String!,
$projectSlug: String!,
$speakerList: [PersonInputList],
$typeOfDocument: String!,
$uniqueObjName: String!
) {
initProtocol(
agendaItemList: $agendaItemList,
date: $date,
language: $language,
name: $name,
projectSlug: $projectSlug,
speakerList: $speakerList,
typeOfDocument: $typeOfDocument,
uniqueObjName: $uniqueObjName
) {
protocol {
...ApiProtocolTypeFragment
}
success
}
}
Variables
{
"agendaItemList": [AgendaItemListInput],
"date": "2007-12-03",
"language": "xyz789",
"name": "abc123",
"projectSlug": "abc123",
"speakerList": [PersonInputList],
"typeOfDocument": "xyz789",
"uniqueObjName": "abc123"
}
Response
{
"data": {
"initProtocol": {
"protocol": ApiProtocolType,
"success": false
}
}
}
initProtocolMulti
Description
Mutation to upload and register multiple audio files for a single session. Works identically to initProtocol but accepts a list of unique object names. All files are passed together to the audio converter as a multi-file session. The protocol slug is derived from the first entry in unique_obj_names.
Response
Returns an InitProtocolMultiMutation
Arguments
| Name | Description |
|---|---|
addressConfig - AddressConfigInput
|
Naming convention configuration for this protocol. Controls which speaker fields are shown in the formatted name output (gender, givenName, familyName, preTitle, postTitle, party, posLong, posShort). Stored as addressnameConfiguration in the protocol's meta_data. |
agendaItemList - [AgendaItemListInput]
|
Agenda list of the session |
date - Date!
|
Date of the session |
language - String!
|
Language of the audio files |
name - String!
|
Name of the session |
projectSlug - String!
|
Slug of the project |
speakerList - [PersonInputList]
|
List of speakers to pre-register |
typeOfDocument - String!
|
Type of the document |
uniqueObjNames - [String]!
|
List of unique names of the audio files (e.g. ['part1.mp3', 'part2.mp3']) |
Example
Query
mutation initProtocolMulti(
$addressConfig: AddressConfigInput,
$agendaItemList: [AgendaItemListInput],
$date: Date!,
$language: String!,
$name: String!,
$projectSlug: String!,
$speakerList: [PersonInputList],
$typeOfDocument: String!,
$uniqueObjNames: [String]!
) {
initProtocolMulti(
addressConfig: $addressConfig,
agendaItemList: $agendaItemList,
date: $date,
language: $language,
name: $name,
projectSlug: $projectSlug,
speakerList: $speakerList,
typeOfDocument: $typeOfDocument,
uniqueObjNames: $uniqueObjNames
) {
protocol {
...ApiProtocolTypeFragment
}
success
}
}
Variables
{
"addressConfig": AddressConfigInput,
"agendaItemList": [AgendaItemListInput],
"date": "2007-12-03",
"language": "abc123",
"name": "xyz789",
"projectSlug": "xyz789",
"speakerList": [PersonInputList],
"typeOfDocument": "abc123",
"uniqueObjNames": ["abc123"]
}
Response
{
"data": {
"initProtocolMulti": {
"protocol": ApiProtocolType,
"success": true
}
}
}
renameSpeakerInTextsegment
Description
Rename speaker in text segments for a given protocol. It validates the user's authentication using an API key passed in the request header and processes the provided protocol slug and speaker information.
Response
Returns a RenameSpeakerInTextsegmentMutation
Arguments
| Name | Description |
|---|---|
protocolSlug - String!
|
Name of the protocol |
speakerList - [SpeakerDataInput]!
|
List of speakers to rename |
Example
Query
mutation renameSpeakerInTextsegment(
$protocolSlug: String!,
$speakerList: [SpeakerDataInput]!
) {
renameSpeakerInTextsegment(
protocolSlug: $protocolSlug,
speakerList: $speakerList
) {
success
nextSteps
}
}
Variables
{
"protocolSlug": "xyz789",
"speakerList": [SpeakerDataInput]
}
Response
{
"data": {
"renameSpeakerInTextsegment": {
"success": true,
"nextSteps": "abc123"
}
}
}
rephraseAgendaItem
Description
Rephrase an agenda item by its ID by user input. It validates the user's authentication using an API key passed in the request header and rephrases the content of the agenda item.
Response
Returns a RephraseAgendaItemByIdMutation
Example
Query
mutation rephraseAgendaItem(
$agendaItemId: String!,
$userInput: String!
) {
rephraseAgendaItem(
agendaItemId: $agendaItemId,
userInput: $userInput
) {
rephraseElement {
...ApiRephraseElementFragment
}
}
}
Variables
{
"agendaItemId": "abc123",
"userInput": "abc123"
}
Response
{
"data": {
"rephraseAgendaItem": {
"rephraseElement": ApiRephraseElement
}
}
}
shortenAgendaItem
Description
Shortens an agenda item by its ID by user input. It validates the user's authentication using an API key passed in the request header and shortens the content of the agenda item in case it's too long.
Response
Returns a ShortenAgendaItemByIdMutation
Example
Query
mutation shortenAgendaItem(
$agendaItemId: String!,
$userInput: String
) {
shortenAgendaItem(
agendaItemId: $agendaItemId,
userInput: $userInput
) {
rephraseElement {
...ApiRephraseElementFragment
}
}
}
Variables
{
"agendaItemId": "xyz789",
"userInput": "abc123"
}
Response
{
"data": {
"shortenAgendaItem": {
"rephraseElement": ApiRephraseElement
}
}
}
splitTextsegment
Description
Split a single text segment into two or more segments, each optionally assigned to a different speaker. The original segment is deleted and replaced by the new ones. Segment positions in the protocol are updated automatically.
Response
Returns a SplitTextsegmentMutation
Arguments
| Name | Description |
|---|---|
newSegments - [NewSegmentInput]!
|
Ordered list of replacement segments. Must cover the full content of the original segment. |
textsegmentId - Int!
|
ID of the text segment to split |
Example
Query
mutation splitTextsegment(
$newSegments: [NewSegmentInput]!,
$textsegmentId: Int!
) {
splitTextsegment(
newSegments: $newSegments,
textsegmentId: $textsegmentId
) {
success
newTextsegmentIds
}
}
Variables
{"newSegments": [NewSegmentInput], "textsegmentId": 123}
Response
{"data": {"splitTextsegment": {"success": false, "newTextsegmentIds": [123]}}}
updateAddressConfig
Description
Sets or updates the addressnameConfiguration for an existing protocol. Controls which speaker name fields are included in the formatted output (e.g. in the generated protocol document).
All boolean flags default to True if addressConfig is omitted. Pass False for each field you want to hide.
Response
Returns an UpdateAddressConfigMutation
Arguments
| Name | Description |
|---|---|
addressConfig - AddressConfigInput!
|
Naming convention configuration. gender: Herr/Frau/Divers prefix. givenName / familyName: name parts. preTitle / postTitle: academic titles. party: party or organisation. posLong: Funktionsbezeichnung lang. posShort: Funktionsbezeichnung kurz. |
protocolSlug - String!
|
Slug of the protocol to update |
Example
Query
mutation updateAddressConfig(
$addressConfig: AddressConfigInput!,
$protocolSlug: String!
) {
updateAddressConfig(
addressConfig: $addressConfig,
protocolSlug: $protocolSlug
) {
success
protocol {
...ApiProtocolTypeFragment
}
}
}
Variables
{
"addressConfig": AddressConfigInput,
"protocolSlug": "abc123"
}
Response
{
"data": {
"updateAddressConfig": {
"success": false,
"protocol": ApiProtocolType
}
}
}
updateAgendaItemById
Description
Update a specific agenda item by its ID. It validates the user's authentication using an API key passed in the request header and processes the provided agenda item data.
Response
Returns an UpdateAgendaItemByIdMutation
Arguments
| Name | Description |
|---|---|
agendaItem - AgendaItemInput!
|
Agenda item to be updated |
agendaItemId - Int!
|
ID of the agenda item to be updated |
Example
Query
mutation updateAgendaItemById(
$agendaItem: AgendaItemInput!,
$agendaItemId: Int!
) {
updateAgendaItemById(
agendaItem: $agendaItem,
agendaItemId: $agendaItemId
) {
agendaItem {
...ApiAgendaItemTypeFragment
}
}
}
Variables
{"agendaItem": AgendaItemInput, "agendaItemId": 123}
Response
{
"data": {
"updateAgendaItemById": {
"agendaItem": ApiAgendaItemType
}
}
}
updateAllAgendaItemsByDepth
Description
Setting the detail depth of the agenda items for a given protocol. Depth can't be bigger than the max_depth of the agenda items.
Response
Returns an UpdateAllAgendaItemsByDepthMutation
Example
Query
mutation updateAllAgendaItemsByDepth(
$depth: Int!,
$protocolSlug: String!
) {
updateAllAgendaItemsByDepth(
depth: $depth,
protocolSlug: $protocolSlug
) {
agendaItemList {
...ApiAgendaItemTypeFragment
}
success
}
}
Variables
{"depth": 987, "protocolSlug": "xyz789"}
Response
{
"data": {
"updateAllAgendaItemsByDepth": {
"agendaItemList": [ApiAgendaItemType],
"success": false
}
}
}
Types
AWSUrlObject
Fields
| Field Name | Description |
|---|---|
url - String
|
AWS Url bucket name |
fields - GenericScalar
|
{ "Content-Type": "multipart/form-data", "key": "test-audio.ogg", "x-amz-algorithm": "AWS4-HMAC-SHA256", "x-amz-credential": " |
Example
{
"url": "abc123",
"fields": GenericScalar
}
AddGlossaryMutation
Description
Add a glossary entry for the authenticated API user and apply it retroactively to all agenda items, text segments, and task items of the specified protocol. The glossary maps a spoken/misrecognised term to its correct spelling.
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
True if the glossary entry was saved and applied |
Example
{"success": true}
AddressConfigInput
Description
Controls which speaker name fields are included in the formatted name output. Corresponds to addressnameConfiguration stored in the protocol's meta_data. All fields default to True if the addressConfig is not provided at all.
Fields
| Input Field | Description |
|---|---|
gender - Boolean
|
Include gender prefix (Herr/Frau/Divers) |
givenName - Boolean
|
Include given name |
familyName - Boolean
|
Include family name |
preTitle - Boolean
|
Include pre-title (e.g. Dr., Prof.) |
postTitle - Boolean
|
Include post-title (e.g. MBA) |
party - Boolean
|
Include party / organization |
posLong - Boolean
|
Include long position title (Funktionsbezeichnung lang) |
posShort - Boolean
|
Include short position title (Funktionsbezeichnung kurz) |
Example
{
"gender": false,
"givenName": false,
"familyName": false,
"preTitle": false,
"postTitle": true,
"party": true,
"posLong": false,
"posShort": true
}
AgendaItemInput
Fields
| Input Field | Description |
|---|---|
title - String
|
Title of the agenda item |
depth - Int
|
Depth of the agenda item |
textList - [TextListItemInput]
|
Text list of the agenda item |
resolutionList - [ResolutionInputType]
|
Resolution list of the agenda item |
systemId - String
|
ID of the agenda item in the external system (e.g. RIS/Session TOP-ID) |
Example
{
"title": "abc123",
"depth": 987,
"textList": [TextListItemInput],
"resolutionList": [ResolutionInputType],
"systemId": "abc123"
}
AgendaItemListInput
Example
{
"title": "xyz789",
"systemId": "abc123",
"startTime": "xyz789",
"resolution": "xyz789"
}
AgendaItemTextType
Description
New structured representation of a single detail-depth text block.
Fields
| Field Name | Description |
|---|---|
depth - Int
|
Detail depth index (0 = full text, 1 = bullet points, 2 = result / summary) |
name - String
|
Human-readable label for this depth (e.g. 'Verlauf', 'Stichpunkte', 'Ergebnis', 'Notizen') |
text - GenericScalar
|
List of sentences / bullet points for this depth |
hasBulletpoints - Boolean
|
Whether the text is rendered as bullet points |
Example
{
"depth": 987,
"name": "xyz789",
"text": GenericScalar,
"hasBulletpoints": false
}
ApiAgendaItemType
Fields
| Field Name | Description |
|---|---|
id - String
|
ID of the agenda item |
classType - String
|
Class type of the agenda item |
title - String
|
Title of the agenda item |
depth - Int
|
Depth of the textlist |
maxDepth - Int
|
Maximal depth of the textlist |
metaData - String
|
Meta data of the agenda item |
textList - GenericScalar
|
LEGACY. Flat dict of depth → sentence list: {"0": [...], "1": [...], "2": [...]} |
resolutionList - [ResolutionType]
|
LEGACY. List of resolutions as {resolution, decision} objects |
texts - [AgendaItemTextType]
|
New structured text blocks per detail depth, including name and bulletpoint flag. |
resolutions - [ResolutionItemType]
|
New structured resolutions including id and optional numerical voting results. |
createdAt - DateTime
|
Creation date of the agenda item |
updatedAt - DateTime
|
Last update date of the agenda item |
Example
{
"id": "abc123",
"classType": "abc123",
"title": "abc123",
"depth": 123,
"maxDepth": 123,
"metaData": "xyz789",
"textList": GenericScalar,
"resolutionList": [ResolutionType],
"texts": [AgendaItemTextType],
"resolutions": [ResolutionItemType],
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z"
}
ApiOrganizationType
ApiProjectType
ApiProtocolType
Fields
| Field Name | Description |
|---|---|
slug - String
|
ID of the protocol |
name - String
|
Name of the protocol |
date - String
|
Date of the protocol |
language - String
|
Language of the protocol |
empty - Boolean
|
Empty status of the protocol |
editStage - Boolean
|
DEPRICATED: Edit stage of the protocol |
creatingStep - String
|
Creation step of the protocol |
creatingStepList - [String]
|
Chronological list of all processing steps completed up to and including the current step. Derived from the known pipeline order — no separate history is stored in the database. |
status - Boolean
|
Status of the protocol, status can be True or False |
renamedSpeakers - Boolean
|
Variable to indicate if the speakers in the document were renamed |
Example
{
"slug": "abc123",
"name": "abc123",
"date": "abc123",
"language": "xyz789",
"empty": false,
"editStage": false,
"creatingStep": "xyz789",
"creatingStepList": ["xyz789"],
"status": true,
"renamedSpeakers": true
}
ApiRephraseElement
Example
{
"id": "abc123",
"status": "abc123",
"userInput": "abc123",
"rephraseType": "xyz789"
}
ApiResultsType
Fields
| Field Name | Description |
|---|---|
creationDone - Boolean
|
Protocol creation status |
protocol - ApiProtocolType
|
Protocol object |
agendaItemList - [ApiAgendaItemType]
|
List of agenda items |
taskItemList - [ApiTaskType]
|
List of tasks |
Example
{
"creationDone": true,
"protocol": ApiProtocolType,
"agendaItemList": [ApiAgendaItemType],
"taskItemList": [ApiTaskType]
}
ApiSpeakerType
Fields
| Field Name | Description |
|---|---|
slug - String
|
Slug of the speaker |
gender - String
|
Gender of the speaker |
givenName - String
|
Given name of the speaker |
familyName - String
|
Family name of the speaker |
party - String
|
Partei Firma of the speaker |
preTitle - String
|
Pre Titel of the speaker |
posShort - String
|
Pos Short of the speaker |
posLong - String
|
Pos Long of the speaker |
postTitle - String
|
Post Titel of the speaker |
systemId - String
|
External System ID of the speaker |
specialCase - Boolean
|
Special Case of the speaker |
Example
{
"slug": "xyz789",
"gender": "xyz789",
"givenName": "xyz789",
"familyName": "abc123",
"party": "abc123",
"preTitle": "abc123",
"posShort": "abc123",
"posLong": "xyz789",
"postTitle": "abc123",
"systemId": "abc123",
"specialCase": true
}
ApiSummaryPerSpeakerItemTypeWithSpeaker
Fields
| Field Name | Description |
|---|---|
speakerObj - ApiSpeakerType
|
Object of the speaker |
textList - GenericScalar
|
{ "0": ["Die Software funktioniert gut."], "1": ["Bitte fügen Sie eine Chat-Funktion hinzu."], "2": ["Das Login über Google sollte schneller sein."] ... } |
speakerSuggestion - String
|
Speaker suggestion |
createdAt - DateTime
|
Creation date of the summary |
updatedAt - DateTime
|
Last update date of the summary |
Example
{
"speakerObj": ApiSpeakerType,
"textList": GenericScalar,
"speakerSuggestion": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z"
}
ApiTaskType
Fields
| Field Name | Description |
|---|---|
id - String
|
ID of the task |
text - String
|
Text of the task |
date - String
|
Date of the task |
assignedTo - String
|
Assigned person for the task |
done - Boolean
|
Task completion status |
createdAt - DateTime
|
Creation date of the task |
updatedAt - DateTime
|
Last update date of the task |
Example
{
"id": "abc123",
"text": "xyz789",
"date": "abc123",
"assignedTo": "xyz789",
"done": true,
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z"
}
ApiTextsegmentTypeV2
Fields
| Field Name | Description |
|---|---|
id - String
|
ID of the TextSegment |
speakerObj - ApiSpeakerType
|
Object of the speaker |
textJson - [TranscriptSegment]
|
List of transcript segments |
pos - Int
|
Position of the text segment |
Example
{
"id": "abc123",
"speakerObj": ApiSpeakerType,
"textJson": [TranscriptSegment],
"pos": 987
}
ApiUsageRecordType
Example
{
"id": "abc123",
"email": "xyz789",
"amount": 123,
"createdAt": "xyz789"
}
Boolean
Description
The Boolean scalar type represents true or false.
CreateApiOrganizationMutation
Fields
| Field Name | Description |
|---|---|
organization - ApiOrganizationType
|
|
plainKey - String
|
Example
{
"organization": ApiOrganizationType,
"plainKey": "xyz789"
}
CreateProjectMutation
Description
Create a new project. User can upload files into a project. Pass the resulting slug into the import audio mutation.
Fields
| Field Name | Description |
|---|---|
project - ApiProjectType
|
Example
{"project": ApiProjectType}
Date
Description
The Date scalar type represents a Date value as specified by iso8601.
Example
"2007-12-03"
DateTime
Description
The DateTime scalar type represents a DateTime value as specified by iso8601.
Example
"2007-12-03T10:15:30Z"
DeleteAgendaItemByIdMutation
Description
Delete a specific agenda item by its ID. Use this when text segments were assigned to a TOP that does not exist in the external system and the item should be removed entirely. All associated AgendaItemText and ResolutionItem records are cascade-deleted.
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
True if the agenda item was deleted |
Example
{"success": false}
DeleteAudioByProtocolSlugMutation
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
|
protocol - ApiProtocolType
|
Example
{"success": false, "protocol": ApiProtocolType}
DeleteProtocolMutation
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
Example
{"success": false}
EditSpeakerDataTypeWithSpeaker
Fields
| Field Name | Description |
|---|---|
protocol - ApiProtocolType
|
Protocol object |
speakerList - GenericScalar
|
{ "Rafiq": { "duration": 77.32, "textsegment": [ { "id": 8, "textsegment_duration": 5.8, "text": "Hello world.", "time": { "start_time": 12.97, "end_time": 14.48 } } ] } } |
summaryPerSpeakerList - [ApiSummaryPerSpeakerItemTypeWithSpeaker]
|
List of summaries per speaker |
attendees - [ApiSpeakerType]
|
List of attendees set on initProtocol mutation |
serverLoad - String
|
Current processing queue load. Based on the number of protocols currently being processed today. "low" = fewer than 10, "medium" = 10–19, "high" = 20 or more. When "high", processing times may be longer than usual. |
Example
{
"protocol": ApiProtocolType,
"speakerList": GenericScalar,
"summaryPerSpeakerList": [
ApiSummaryPerSpeakerItemTypeWithSpeaker
],
"attendees": [ApiSpeakerType],
"serverLoad": "xyz789"
}
ExtendAgendaItemByIdMutation
Description
Extend an agenda item by its ID by user input. It validates the user's authentication using an API key passed in the request header and extends the content of the agenda item in case it's too short.
Fields
| Field Name | Description |
|---|---|
rephraseElement - ApiRephraseElement
|
Example
{"rephraseElement": ApiRephraseElement}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
GenericScalar
Description
The GenericScalar scalar type represents a generic GraphQL scalar value that could be: String, Boolean, Int, Float, List or Object.
Example
GenericScalar
InitProtocolMultiMutation
Description
Mutation to upload and register multiple audio files for a single session. Works identically to initProtocol but accepts a list of unique object names. All files are passed together to the audio converter as a multi-file session. The protocol slug is derived from the first entry in unique_obj_names.
Fields
| Field Name | Description |
|---|---|
protocol - ApiProtocolType
|
Protocol object |
success - Boolean
|
Indicates if import was successful |
Example
{"protocol": ApiProtocolType, "success": false}
InitProtocolMutation
Description
Mutation to upload and register an audio file for processing. This mutation allows users to upload an audio file and register it for further processing. It validates the user's authentication using an API key passed in the request header and processes the provided audio metadata.
Fields
| Field Name | Description |
|---|---|
protocol - ApiProtocolType
|
Protocol object |
success - Boolean
|
Indicates if import audio was successful |
Example
{"protocol": ApiProtocolType, "success": true}
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
NewSegmentInput
Fields
| Input Field | Description |
|---|---|
speakerSlug - String!
|
Slug of the speaker for this segment (from getProtocolBySlug speakerList keys) |
textJson - [TextJsonItemInput]!
|
List of transcript sentences for this segment |
Example
{
"speakerSlug": "abc123",
"textJson": [TextJsonItemInput]
}
PersonInputList
Fields
| Input Field | Description |
|---|---|
gender - String!
|
Gender of the speaker [w, m, d] |
givenName - String!
|
Given name of the speaker |
familyName - String!
|
Family name of the speaker |
party - String
|
Partei Firma of the speaker. Default = null |
preTitle - String
|
Pre Titel of the speaker. Default = null |
postTitle - String
|
Post Titel of the speaker. Default = null |
systemId - String
|
External System ID of the speaker. Default = null |
Example
{
"gender": "abc123",
"givenName": "xyz789",
"familyName": "abc123",
"party": "abc123",
"preTitle": "xyz789",
"postTitle": "xyz789",
"systemId": "xyz789"
}
RenameSpeakerInTextsegmentMutation
Description
Rename speaker in text segments for a given protocol. It validates the user's authentication using an API key passed in the request header and processes the provided protocol slug and speaker information.
Example
{"success": false, "nextSteps": "xyz789"}
RephraseAgendaItemByIdMutation
Description
Rephrase an agenda item by its ID by user input. It validates the user's authentication using an API key passed in the request header and rephrases the content of the agenda item.
Fields
| Field Name | Description |
|---|---|
rephraseElement - ApiRephraseElement
|
Example
{"rephraseElement": ApiRephraseElement}
RephraseReturnObject
ResolutionInputType
ResolutionItemType
Description
New structured resolution with optional voting result fields.
Fields
| Field Name | Description |
|---|---|
id - Int
|
ID of the resolution item |
resolution - String
|
Resolution text (Beschlusstext) |
decision - String
|
Decision text (Abstimmungsergebnis als Text) |
positiveVote - Int
|
Number of yes votes |
negativeVote - Int
|
Number of no votes |
neutralVote - Int
|
Number of abstentions |
numberAttendees - Int
|
Total number of attendees who voted |
Example
{
"id": 987,
"resolution": "xyz789",
"decision": "xyz789",
"positiveVote": 123,
"negativeVote": 123,
"neutralVote": 123,
"numberAttendees": 987
}
ResolutionType
ShortenAgendaItemByIdMutation
Description
Shortens an agenda item by its ID by user input. It validates the user's authentication using an API key passed in the request header and shortens the content of the agenda item in case it's too long.
Fields
| Field Name | Description |
|---|---|
rephraseElement - ApiRephraseElement
|
Example
{"rephraseElement": ApiRephraseElement}
SpeakerDataInput
Fields
| Input Field | Description |
|---|---|
oldSlug - String!
|
Current slug of the speaker |
gender - String
|
Gender of the new speaker |
givenName - String
|
Given name of the new speaker |
familyName - String
|
Family name of the new speaker |
party - String
|
Party of the new speaker |
preTitle - String
|
Pre-title of the new speaker |
postTitle - String
|
Post-title of the new speaker |
posLong - String
|
Long position of the new speaker |
posShort - String
|
Short position of the new speaker |
systemId - String
|
External System ID of the new speaker |
specialCase - Boolean
|
Mark this speaker as a special case. When True, only the givenName field is used as the display name and the speaker is excluded from the summary output. Use this for background noise, unknown persons, etc. |
Example
{
"oldSlug": "abc123",
"gender": "abc123",
"givenName": "xyz789",
"familyName": "abc123",
"party": "xyz789",
"preTitle": "xyz789",
"postTitle": "xyz789",
"posLong": "xyz789",
"posShort": "abc123",
"systemId": "xyz789",
"specialCase": false
}
SplitTextsegmentMutation
Description
Split a single text segment into two or more segments, each optionally assigned to a different speaker. The original segment is deleted and replaced by the new ones. Segment positions in the protocol are updated automatically.
Example
{"success": false, "newTextsegmentIds": [123]}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
TextJsonItemInput
TextListItemInput
TextsegmentListTypeV2
Fields
| Field Name | Description |
|---|---|
textsegmentList - [ApiTextsegmentTypeV2]
|
List of text segments |
Example
{"textsegmentList": [ApiTextsegmentTypeV2]}
TranscriptSegment
UpdateAddressConfigMutation
Description
Sets or updates the addressnameConfiguration for an existing protocol. Controls which speaker name fields are included in the formatted output (e.g. in the generated protocol document).
All boolean flags default to True if addressConfig is omitted. Pass False for each field you want to hide.
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
True if the config was saved successfully |
protocol - ApiProtocolType
|
Updated protocol object |
Example
{"success": false, "protocol": ApiProtocolType}
UpdateAgendaItemByIdMutation
Description
Update a specific agenda item by its ID. It validates the user's authentication using an API key passed in the request header and processes the provided agenda item data.
Fields
| Field Name | Description |
|---|---|
agendaItem - ApiAgendaItemType
|
Updated agenda item |
Example
{"agendaItem": ApiAgendaItemType}
UpdateAllAgendaItemsByDepthMutation
Description
Setting the detail depth of the agenda items for a given protocol. Depth can't be bigger than the max_depth of the agenda items.
Fields
| Field Name | Description |
|---|---|
agendaItemList - [ApiAgendaItemType]
|
List of agenda items |
success - Boolean
|
Indicates if the rename operation was successful |
Example
{"agendaItemList": [ApiAgendaItemType], "success": true}