Voxco AICoder API
The AICoder API from Voxco — 15 operation(s) for aicoder.
The AICoder API from Voxco — 15 operation(s) for aicoder.
openapi: 3.0.4
info:
title: Ascribe Coder AICoder API
description: <br/> To import this API to Postman, copy the URL from the top of this page.<br/> Open Postman, and select Import.<br/> In the dialog select 'Import From Link'.<br/> Paste the URL and click Import.<br/><br/> To use this API interactively from this page, open the POST Sessions operation below.<br/> Click the Example Value in the Parameters section to move it to the request.<br/> Modify the request with your credentials, then click "Try it out!"<br/> Copy the value of the bearerToken returned in the response to the api_key text box at the top of this page.<br/> You can now interact with the other resources on this page.<br/> You can save the bearer token for future use without needing to POST to the Sessions resource again.
contact:
email: support@goascribe.com
version: v2
servers:
- url: https://api.goascribe.us/coder/v2
description: US Servers
- url: https://api.goascribe.eu/coder/v2
description: EU Servers
- url: https://api-ca.goascribe.com/coder/v2
description: CA Servers
security:
- Bearer: []
tags:
- name: AICoder
paths:
/AICoder/Export/Excel:
post:
tags:
- AICoder
summary: Initiates a new task to export AI Coder project data into an Excel file.
description: "This method exports AI Coder project data into an Excel file.\r\n\r\nAfter the method triggers an export task, it returns a unique task key.\r\n\r\nThis key can be used for tracking the status of exporting through the API endpoint: **AICoder/Export/Excel/{taskStatusKey:long}**."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderExcelExportRequest'
example:
aiCoderKey: 39999
text/json:
schema:
$ref: '#/components/schemas/AICoderExcelExportRequest'
example:
aiCoderKey: 39999
application/*+json:
schema:
$ref: '#/components/schemas/AICoderExcelExportRequest'
example:
aiCoderKey: 39999
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderExcelExportResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/Export/Excel/{taskStatusKey}:
get:
tags:
- AICoder
summary: Retrieves the current status of an Excel file export task.
description: "This method requires a task key as an input parameter, which is obtained from the response of the **AICoder/Export/Excel** method.\r\n \r\nIt returns the current status of the export task, including its result if completed.\r\n\r\nIf the task is not yet completed, the method should be called again after a delay.\r\n\r\nContinue calling this method until the task is either completed or rejected due to an error."
parameters:
- name: taskStatusKey
in: path
description: The key associated with the ongoing task.
required: true
schema:
type: integer
format: int64
example: 1020309999
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderExcelExportGetStatusOfTaskResponse'
example:
isCompleted: true
fileUrl: https://goascribe.com/xfjfoejgreo.xls
errorMessage: null
/AICoder/Export/Codebook:
post:
tags:
- AICoder
summary: Initiates a new task to export the generated codebook from an AI Coder project to a Coder study.
description: "It allows to export generated codebook in AI Coder back into Coder codebook by using some export strategy (Append, Overwrite, or Merge)\r\n\r\nand determine whether responses should be coded automatically after the export.\r\n\r\nAfter the method triggers generating codebook task, it returns a unique task key.\r\n\r\nThis key can be used for tracking the status of generating codebook through the API endpoint: **AICoder/Export/Codebook/{taskStatusKey:long}**.\r\n\r\nParameter **ExportType:** Specifies the strategy to be used for exporting the codebook.\r\n\r\nCommon options include:\r\n - **Append**: Adds the new codebook data into the existing codebook of Coder study.\r\n - **Overwrite**: Fully replaces the existing codebook in the Coder study with the new one.\r\n - **Merge**: Combines the new codebook with the existing one, replacing any existing codes with the same name and input/output IDs while adding new information"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodebookExportRequest'
example:
aiCoderKey: 39999
analyzedVariable: 203399
exportType: Append
skipResponcesCoding: false
text/json:
schema:
$ref: '#/components/schemas/AICoderCodebookExportRequest'
example:
aiCoderKey: 39999
analyzedVariable: 203399
exportType: Append
skipResponcesCoding: false
application/*+json:
schema:
$ref: '#/components/schemas/AICoderCodebookExportRequest'
example:
aiCoderKey: 39999
analyzedVariable: 203399
exportType: Append
skipResponcesCoding: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodebookExportResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/Export/Codebook/{taskStatusKey}:
get:
tags:
- AICoder
summary: Retrieves the current status of Codebook export task.
description: "This method requires a task key as an input parameter, which is obtained from the response of the **AICoder/Export/Codebook** method.\r\n\r\nIt returns the current status of the export task, including its result if completed.\r\n\r\nIf the task is not yet completed, the method should be called again after a delay.\r\n\r\nContinue calling this method until the task is either completed or rejected due to an error."
parameters:
- name: taskStatusKey
in: path
description: The key associated with the ongoing task.
required: true
schema:
type: integer
format: int64
example: 1020309999
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodebookExportGetStatusOfTaskResponse'
example:
isCompleted: true
errorMessage: null
/AICoder/Analyze/v3:
post:
tags:
- AICoder
summary: Initiates a new task for analyzing study using Codebook Builder (UI-aligned v3 contract).
description: "This method analyzes responses from some study questions using Codebook Builder: prompt embeddings and clustering to build a prototype codebook.\r\n\r\nRequest `CodebookBuilder` options match the AI Coder app defaults and ranges (granularity 25–150, creation method AI vs data-driven,\r\nminimum responses per code 1–250 default 3, classification strictness 75–95%, optional topic-based code cap 1–50 when enabled,\r\noptional analyze-by closed-ended question).\r\n\r\nGiven codebook prototype can be used in applications such as Ascribe Coder with pre-editing it in AI Coder or without it.\r\n\r\nAdditionally, this process generates a structured dataset that can be utilized for: \r\n- Comprehensive analysis of the content of survey responses;\r\n- Creation of detailed reports based on the analyzed data; \r\n\r\nThis method enhances the efficiency of processing textual data and facilitates its interpretation."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyV3Request'
example:
questionKeys:
- 100
- 101
- 102
- 103
codebookBuilder:
codebookGranularity: 100
creationMethod: AIGenerated
minimumResponsesPerCode: 3
classificationStrictness: 80
maxTopicBasedCodesEnabled: false
maxTopicBasedCodes: 10
analyzeByClosedEnd: null
includeCodedResponses: false
wordsToIgnore:
- some
- words
- to
- ignore
generativeAIOptions:
dataIsAbout: null
codebookLanguage: en
nonGenerativeAIOptions:
splitCharacters: .!?|
splitWords:
- but
- however
- nevertheless
- nonetheless
- yet
- thus
- also
- additionally
- nor
- and
responsesAreAllEnglish: true
useGenerativeAI: true
text/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyV3Request'
example:
questionKeys:
- 100
- 101
- 102
- 103
codebookBuilder:
codebookGranularity: 100
creationMethod: AIGenerated
minimumResponsesPerCode: 3
classificationStrictness: 80
maxTopicBasedCodesEnabled: false
maxTopicBasedCodes: 10
analyzeByClosedEnd: null
includeCodedResponses: false
wordsToIgnore:
- some
- words
- to
- ignore
generativeAIOptions:
dataIsAbout: null
codebookLanguage: en
nonGenerativeAIOptions:
splitCharacters: .!?|
splitWords:
- but
- however
- nevertheless
- nonetheless
- yet
- thus
- also
- additionally
- nor
- and
responsesAreAllEnglish: true
useGenerativeAI: true
application/*+json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyV3Request'
example:
questionKeys:
- 100
- 101
- 102
- 103
codebookBuilder:
codebookGranularity: 100
creationMethod: AIGenerated
minimumResponsesPerCode: 3
classificationStrictness: 80
maxTopicBasedCodesEnabled: false
maxTopicBasedCodes: 10
analyzeByClosedEnd: null
includeCodedResponses: false
wordsToIgnore:
- some
- words
- to
- ignore
generativeAIOptions:
dataIsAbout: null
codebookLanguage: en
nonGenerativeAIOptions:
splitCharacters: .!?|
splitWords:
- but
- however
- nevertheless
- nonetheless
- yet
- thus
- also
- additionally
- nor
- and
responsesAreAllEnglish: true
useGenerativeAI: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/Analyze:
post:
tags:
- AICoder
summary: Initiates a new task for analyzing study.
description: "This method analyzes responses from some study questions by applying artificial intelligence (AI)\r\n\r\nor special algorithms for automatically constructing a hierarchical model of a prototype codebook.\r\n \r\nGiven codebook prototype can be used in applications such as Ascribe Coder with pre-editing it in AI Coder or without it.\r\n\r\nAdditionally, this process generates a structured dataset that can be utilized for: \r\n- Comprehensive analysis of the content of survey responses;\r\n- Creation of detailed reports based on the analyzed data; \r\n\r\nThis method enhances the efficiency of processing textual data and facilitates its interpretation.\r\n\r\nNote: For Codebook Builder (prompt embeddings) analysis aligned with the AI Coder app, use `POST /AICoder/Analyze/v3`."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyRequest'
example:
questionKeys:
- 100
- 101
- 102
- 103
existingCodebookKey: -1
existingCodebookSuggestNewCodes: false
existingCodebookOptions: null
codebook:
initial:
minProximity: 75
minSegmentsPerCode: 3
approxMaxCodes: 100
mergeSimilar:
enabled: true
minProximity: 85
assignSegmentSiblings:
enabled: true
minProximity: 75
minSiblings: 3
assignTopSegments:
enabled: true
minProximity: 75
topSegments: 10
generativeAIOptions:
dataIsAbout: null
codebookLanguage: en
nonGenerativeAIOptions:
splitCharacters: .!?|
splitWords:
- but
- however
- nevertheless
- nonetheless
- yet
- thus
- also
- additionally
- nor
- and
responsesAreAllEnglish: true
useGenerativeAI: false
wordsToIgnore:
- some
- words
- to
- ignore
includeCodedResponses: false
useEnhancedThemeExtractor: false
enhancedThemeExtractor:
maxNumberOfNets: 10
maxNumberOfCodes: 100
codebookBuilderPrompt: null
analyzeByClosedEnd: null
codebookGranularity: null
text/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyRequest'
example:
questionKeys:
- 100
- 101
- 102
- 103
existingCodebookKey: -1
existingCodebookSuggestNewCodes: false
existingCodebookOptions: null
codebook:
initial:
minProximity: 75
minSegmentsPerCode: 3
approxMaxCodes: 100
mergeSimilar:
enabled: true
minProximity: 85
assignSegmentSiblings:
enabled: true
minProximity: 75
minSiblings: 3
assignTopSegments:
enabled: true
minProximity: 75
topSegments: 10
generativeAIOptions:
dataIsAbout: null
codebookLanguage: en
nonGenerativeAIOptions:
splitCharacters: .!?|
splitWords:
- but
- however
- nevertheless
- nonetheless
- yet
- thus
- also
- additionally
- nor
- and
responsesAreAllEnglish: true
useGenerativeAI: false
wordsToIgnore:
- some
- words
- to
- ignore
includeCodedResponses: false
useEnhancedThemeExtractor: false
enhancedThemeExtractor:
maxNumberOfNets: 10
maxNumberOfCodes: 100
codebookBuilderPrompt: null
analyzeByClosedEnd: null
codebookGranularity: null
application/*+json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyRequest'
example:
questionKeys:
- 100
- 101
- 102
- 103
existingCodebookKey: -1
existingCodebookSuggestNewCodes: false
existingCodebookOptions: null
codebook:
initial:
minProximity: 75
minSegmentsPerCode: 3
approxMaxCodes: 100
mergeSimilar:
enabled: true
minProximity: 85
assignSegmentSiblings:
enabled: true
minProximity: 75
minSiblings: 3
assignTopSegments:
enabled: true
minProximity: 75
topSegments: 10
generativeAIOptions:
dataIsAbout: null
codebookLanguage: en
nonGenerativeAIOptions:
splitCharacters: .!?|
splitWords:
- but
- however
- nevertheless
- nonetheless
- yet
- thus
- also
- additionally
- nor
- and
responsesAreAllEnglish: true
useGenerativeAI: false
wordsToIgnore:
- some
- words
- to
- ignore
includeCodedResponses: false
useEnhancedThemeExtractor: false
enhancedThemeExtractor:
maxNumberOfNets: 10
maxNumberOfCodes: 100
codebookBuilderPrompt: null
analyzeByClosedEnd: null
codebookGranularity: null
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/Analyze/Incremental:
post:
tags:
- AICoder
summary: Initiates a new task for incremental analyzing study.
description: "This method does the same as **/AICoder/Analyze**, but for newly loaded responses only.\r\nOptional `SuggestNewCodes` on the request body matches the AI Coder **Suggest new codes** checkbox when adding a load\r\n(`addNewCodesWhenAddAICoderLoad`); default is `false`."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyIncrementallyRequest'
example:
key: 19999
suggestNewCodes: false
text/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyIncrementallyRequest'
example:
key: 19999
suggestNewCodes: false
application/*+json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyIncrementallyRequest'
example:
key: 19999
suggestNewCodes: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyIncrementallyResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/Analyze/{taskStatusKey}:
get:
tags:
- AICoder
summary: Retrieves a status of analyzing (incremental analyzing) study task.
description: "This method expects a task key as an input parameter from the **/AICoder/Analyze** or **/AICoder/Analyze/Incremental**.\r\n\r\nIt returns information about current status of the analyzing task or result."
parameters:
- name: taskStatusKey
in: path
description: The key of the executing task.
required: true
schema:
type: integer
format: int64
example: 1020309999
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCodeStudyStatusOfTaskResponse'
example:
isCompleted: true
project: null
errorMessage: null
/AICoder/Analyze/Codebooks:
get:
tags:
- AICoder
summary: Retrieves a list of available codebooks from AI Coder projects.
description: "This method scans AI Coder projects for non-deleting codebooks and returns list of their defenitions.\r\n\r\nIf value of **id** property ends with \"GAI\" it means that codebook was created by using generative artificial intelligence.\r\n\r\nIf value of **id** property ends with \"AI\" it means that codebook was created by using simple artificial intelligence.\r\n\r\nIf value of **id** property does not include \"GAI\" or \"AI\" in the tail it means that codebook was created without using any kind of artificial intelligence."
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderAnalyzeGetCodebooksResponse'
example:
codebooks:
- key: -1
id: New Codebook
- key: 190001
id: Test Codebook 1
- key: 190002
id: Test Codebook 2 - GAI
- key: 190003
id: Test Codebook 3
errorMessage: null
/AICoder/NetCodes:
post:
tags:
- AICoder
summary: Initiates a new task for grouping codes into target net.
description: "This method re-builds the entire codebook of specified AI Coder project or its part.\r\n\r\nParameter **NetKey** allows specifying a child net as the root of a branch and rebuilding only that part.\r\n \r\nIf **NetKey** is set to **0**, the entire codebook will be processed.\r\n\r\nSetting the **NetLevel** parameter to **0** removes all nets, otherwise this value must be positive and can be less than or greater than the current net level of the codebook."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderGroupCodesRequest'
example:
aiCoderKey: 1
netKey: 1005
netLevel: 2
text/json:
schema:
$ref: '#/components/schemas/AICoderGroupCodesRequest'
example:
aiCoderKey: 1
netKey: 1005
netLevel: 2
application/*+json:
schema:
$ref: '#/components/schemas/AICoderGroupCodesRequest'
example:
aiCoderKey: 1
netKey: 1005
netLevel: 2
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderGroupCodesResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/NetCodes/{taskStatusKey}:
get:
tags:
- AICoder
summary: Retrieves a status of grouping codes to target net task.
description: "This method expects a task key as an input parameter from the **/AICoder/NetCodes** method.\r\n\r\nIt returns information about current status of the grouping nets task or result."
parameters:
- name: taskStatusKey
in: path
description: The key of the executing task.
required: true
schema:
type: integer
format: int64
example: 1020309999
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderGroupCodesStatusOfTaskResponse'
example:
isCompleted: true
errorMessage: null
/AICoder/Projects:
get:
tags:
- AICoder
summary: Retrieves a list of all AI Coder projects that available to current user.
description: "This method prepares a list of AI Coder project defenitions which available for the current user.\r\n\r\nThe result list includes deleted projects as well."
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderGetProjectsTaskResponse'
example:
aiCoderProjects:
- key: 29999
description: ''
questionKeys:
- 18999
- 20000
- 20001
responsesCount: 100
responsesCodedCount: 200
codesAppliedCount: 200
owner: some.user
createDate: '2026-06-13T20:21:47.08939+00:00'
updateDate: '2026-06-13T20:21:47.0893906+00:00'
deleteDate: null
isPublic: false
errorMessage: null
/AICoder/Links:
post:
tags:
- AICoder
summary: Create new link(s) to an AI Coder project
description: This method generates temporary short link(s) for sharing. The link(s) leads to specified AI Coder project's page.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCreateLinkRequest'
example:
projectKey: 29999
distributionQuestionKey: 39999
expirationDateUtc: '2026-06-13T20:21:47.0923631Z'
text/json:
schema:
$ref: '#/components/schemas/AICoderCreateLinkRequest'
example:
projectKey: 29999
distributionQuestionKey: 39999
expirationDateUtc: '2026-06-13T20:21:47.0923631Z'
application/*+json:
schema:
$ref: '#/components/schemas/AICoderCreateLinkRequest'
example:
projectKey: 29999
distributionQuestionKey: 39999
expirationDateUtc: '2026-06-13T20:21:47.0923631Z'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderCreateLinkResponse'
example:
links:
- distributionQuestionValue: Some value
link: https://goascribe.com/xfjfoejgreo
expirationDateUtc: '2026-06-13T20:21:47.0940103Z'
errorMessage: null
/AICoder/Export/Dichotomous:
post:
tags:
- AICoder
summary: Initiates a new task for exporting of dichotomous report
description: "After the method triggers exporting of dichotomous report task, it returns a unique task key.\r\n\r\nThis key can be used for tracking the status of generating of dichotomous report through the API endpoint: **AICoder/Export/Dichotomous/{taskStatusKey:long}**."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderDichotomousExportRequest'
example:
projectKey: 29999
removeEmptyColumns: true
useAverageSentimentPerRow: false
text/json:
schema:
$ref: '#/components/schemas/AICoderDichotomousExportRequest'
example:
projectKey: 29999
removeEmptyColumns: true
useAverageSentimentPerRow: false
application/*+json:
schema:
$ref: '#/components/schemas/AICoderDichotomousExportRequest'
example:
projectKey: 29999
removeEmptyColumns: true
useAverageSentimentPerRow: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderDichotomousExportResponse'
example:
taskStatusKey: 1020309999
errorMessage: null
/AICoder/Export/Dichotomous/{taskStatusKey}:
get:
tags:
- AICoder
summary: Retrieves a status of exporting of dichotomous report task.
description: "This method expects a task key as an input parameter from the **/AICoder/Export/Dichotomous** method.\r\n\r\nIt returns information about current status of exporting of dichotomous report task or result.\r\n\r\nIf the task is not yet completed, the method should be called again after a delay.\r\n\r\nContinue calling this method until the task is either completed or rejected due to an error."
parameters:
- name: taskStatusKey
in: path
description: The key of the executing task.
required: true
schema:
type: integer
format: int64
example: 1020309999
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AICoderDichotomousExportGetStatusOfTaskResponse'
example:
isCompleted: true
fileUrl: https://goascribe.com/xfjfoejgreo.xls
errorMessage: null
components:
schemas:
GenerativeAIOptions:
type: object
properties:
dataIsAbout:
type: string
description: String that describing common sense of analyzing data
nullable: true
codebookLanguage:
type: string
description: Language of codes in codebook
nullable: true
additionalProperties: false
description: Generative AI options
CodebookGranularityOption:
enum:
- Low
- Medium
- High
type: string
description: Defines the desired level of granularity (detail) for the automatically generated codebook themes.
format: ''
AICoderDichotomousExportRequest:
required:
- projectKey
type: object
properties:
projectKey:
type: integer
description: Key of target AI Coder project which data should be exported into Excel file
format: int32
removeEmptyColumns:
type: boolean
description: Removes empty columns from the report (i.e. columns that don't have any 1 value in its cells).
useAverageSentimentPerRow:
type: boolean
description: Adds a column with the average sentiment per row.
additionalProperties: false
description: Contains request data of the exporting to dichotomous report file task
AICoderProjectAPI:
required:
- owner
- questionKeys
type: object
properties:
key:
type: integer
description: Key of AI Coder project
format: int32
description:
type: string
description: Description of AI Coder project
nullable: true
questionKeys:
type: array
items:
type: integer
format: int32
description: Keys
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/voxco/refs/heads/main/openapi/voxco-aicoder-api-openapi.yml