GraphQL Schema

GraphQL Schemas Guideline

type Mutation {
launchTextProject(input: LaunchTextProjectInput!): Project!
createGuideline(input: GuidelineInput!): Guideline!
type Query {
getAllTeams: [Team!]!
exportTextProject(input: ExportTextProjectInput!): ExportRequestRedirectResult!
exportTextProjectDocument(input: ExportTextProjectDocumentInput!): ExportRequestRedirectResult!
input LaunchTextProjectInput {
"Specify teamId when you want to create project on a team. Do not specify teamId when you want to create a Personal Project."
teamId: ID
"Optional. This works for Team Project."
assignees: [ProjectAssignmentByNameInput!]
name: String!
"Use DOC when you want to create Doc Based Labeling or [any project template]("
type: TextDocumentType
dueDate: String
"Optional. LabelSetId for Token Based Labeling. You can provide labelSetId when creating project or you can create LabelSet after the project is created."
labelSetId: ID
projectCreationId: String
projectSettings: ProjectSettingsInput
documentSettings: TextDocumentSettingsInput!
documents: [CreateTextDocumentInput!]
input ProjectAssignmentByNameInput {
"We only require one between teamMemberId and email. Use teamMember query to retrieve the teamMemberId."
teamMemberId: ID
"We only require one between teamMemberId and email. Use email for simplicity."
email: String
"Document's name to be assigned."
documentNames: [String!]
enum GqlExportMethod {
"Send the download link to custom webhook."
"Download the file directly."
"Send the download link to creator email."
"Return file url."
input ExportTextProjectInput {
projectIds: [String!]!
"Export project based on specified Role."
role: Role!
"See [this documentation]( for further information."
format: String!
fileName: String!
method: GqlExportMethod!
"Optional. Use this field when you choose method CUSTOM_WEBHOOK."
url: String
"Optional. Use this field when you choose method CUSTOM_WEBHOOK."
secret: String
input ExportTextProjectDocumentInput {
documentId: String!
"See [this documentation]( for further information."
format: String!
fileName: String!
method: GqlExportMethod!
"Optional. Use this field when you choose method CUSTOM_WEBHOOK."
url: String
"Optional. Use this field when you choose method CUSTOM_WEBHOOK."
secret: String
type ExportRequestRedirectResult {
"You should use this redirect url if you use method DOWNLOAD."
redirect: String
queued: Boolean
fileUrl: String
fileUrlExpiredAt: String
input ProjectSettingsInput {
"Labelers will be restricted from adding or removing labels from the label set while labeling."
enableEditLabelSet: Boolean
"Labelers will be able to edit the original text while labeling."
enableEditSentence: Boolean
"Peer review / labeler consensus. It determines how many consensus so that the label will be automatically accepted."
consensus: Int
input TextDocumentSettingsInput {
"It determines how many token that can be covered by one label."
textLabelMaxTokenLength: Int
"Optional. Every token must have at least one label in Token Based Labeling."
allTokensMustBeLabeled: Boolean
autoScrollWhenLabeling: Boolean
"Optional. Allow arrows to be drawn between labels in Token Based Labeling."
allowArcDrawing: Boolean
"Optional. Tokens and token spans should have at most one label. There can be no duplicate labels on a single token or token span."
allowMultiLabels: Boolean
kind: TextDocumentKind!
"Only works for Token Based Labeling. Possible values are `\n` and `.`"
sentenceSeparator: String
"Only works for Row Based Labeling, It determines how many rows displayed in the editor. Use -1 for show all rows at once."
displayedRows: Int
"Only works for Row Based Labeling."
mediaDisplayStrategy: MediaDisplayStrategy
"See [this documentation]("
enum TextDocumentKind {
"It determines how media displayed in editor."
enum MediaDisplayStrategy {
"Media will be not rendered."
"Media will be rendered as thumbnail."
"Media will be rendered with its original size."
input DocFileOptionsInput {
"Override column headers by using these values."
customHeaderColumns: [String!]
"If the csv or xlsx file has header as the first row. Datasaur will use it as the column header for Row Based Labeling."
firstRowAsHeader: Boolean
input CreateTextDocumentInput {
"Document Name. It affects the document title section."
name: String
"File Name. It affects the File Extension and exported file."
fileName: String!
"Specify fileUrl if you want to label document from external Datasaur without uploading the content."
fileUrl: String
settings: SettingsInput
"Optional. It uses the same type as in LaunchTextProjectInput."
type: TextDocumentType
"Specify file if you want to upload file. Datasaur only process one between file and fileUrl."
file: Upload
"Only used in Row Based Labeling and Document Based Labeling."
docFileOptions: DocFileOptionsInput
questionFile: Upload
questionFileName: String
input SettingsInput {
"Optional. Default is `en`."
textLang: String
labelSetID: ID
"If You don't want to create a new guideline please provide existing Guideline ID"
guidelineID: ID
"Optional. Default is 60 second."
autoSavePeriod: Int
"Optional. Default is 5 lines."
numberOfLinesDisplayed: Int
"Required for Row Based Labeling and Document Based Labeling."
questions: [QuestionInput]
input QuestionInput {
"Only for update."
id: Int
"Set to true to delete the question when updating the document."
delete: Boolean
bindToColumn: String
type: QuestionType
"Column name."
name: String
"Message shown to Labeler."
label: String
"This marks whether the question is required to answer or not."
required: Boolean
config: QuestionConfigInput
input QuestionConfigInput {
"Applies for DATE, TIME. Possible values for DATE are `DD-MM-YYYY`, `MM-DD-YYYY`, `YYYY-MM-DD` `DD/MM/YYYY`, `MM/DD/YYYY` and `YYYY/MM/DD`. Possible values for TIME are `HH:mm:ss`, `HH:mm`, ``, and ``"
format: String
"Applies for TEXT, NESTED, DROPDOWN, HIERARCHICAL_DROPDOWN. Set it as true if you want to have multiple answers for this question."
multiple: Boolean
"Applies for TEXT. Set it as true if you want to enter long text."
multiline: Boolean
"Applies for Dropdown, HIERARCHICAL_DROPDOWN."
options: [QuestionConfigOptionsInput!]
"Applies for NESTED."
questions: [QuestionInput!]
"Applies for TEXT."
minLength: Int
"Applies for TEXT."
maxLength: Int
"Applies for TEXT. This field could have contain a regex string, which the browser natively uses for validation. E.g. `[0-9]*`"
pattern: String
"Applies for SLIDER."
min: Int
"Applies for SLIDER."
max: Int
"Applies for SLIDER."
step: Int
input DocumentMetaInput {
id: Int!
delete: Boolean
name: String!
description: String
required: Boolean
multipleChoice: Boolean
options: [DocumentMetaOptionInput!]
type: QuestionType
width: String
input DocumentMetaOptionInput {
id: String!
name: String!
parentId: String
"See [this documentation]( for further information."
enum QuestionType {
"This type provides a dropdown with multiple options."
"This type provides a dropdown with hierarchical options."
"You can create sub questions inside a question by using this type."
"This type provides a text area."
"This type provides a slider with customizeable minimum value and maximum value."
"This type provides a date picker."
"This type provides a time picker."
"More complete explanation can be found here in [this page]("
enum TextDocumentType {
"Part of Speech"
"Named Entity Recognition"
"Document Labeling"
"Optical Character Recognition"
type Project {
id: String!
team: Team
rootDocumentId: String!
assignees: [ProjectAssignment!]
name: String!
type: String!
createdDate: String!
updatedDate: String!
isOwnerMe: Boolean!
isReviewByMeAllowed: Boolean!
settings: ProjectSettings!
status: ProjectStatus!
type ProjectAssignment {
teamMember: TeamMember!
documentIds: [String!]
type Team {
id: String!
logoURL: String
members: [TeamMember!]
name: String!
type TeamMember {
id: String!
user: User
role: TeamRole
invitationEmail: String
invitationStatus: String
invitationKey: String
isRemoved: Boolean!
joinedDate: String!
type TeamRole {
id: String!
name: String!
input GuidelineInput {
name: String!
content: String!
type Guideline {
id: String
name: String!
content: String!
type User {
id: ID
username: String
name: String
email: String!
package: Package!
profilePicture: String
displayName: String!
enum Package {