openapi: 3.0.3 info: title: pretalx API version: '' paths: /api/: get: operationId: api_retrieve description: Returns a link to the REST API, as well as the pretalx and API versions. summary: API Root tags: - root responses: '200': content: application/json: schema: $ref: '#/components/schemas/Root' description: '' /api/events/: get: operationId: api_events_list summary: List Events parameters: - in: query name: is_public schema: type: boolean - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: q schema: type: string description: A search term, searching in `"name"`. tags: - events responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/EventList' description: '' /api/events/{event}/: get: operationId: root_retrieve summary: Show Events parameters: - in: path name: event schema: type: string title: Short form description: The slug may only contain letters, numbers, dots and dashes. required: true tags: - events responses: '200': content: application/json: schema: $ref: '#/components/schemas/Event' description: '' /api/events/{event}/access-codes/: get: operationId: access_codes_list summary: List Access Codes parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - submission_type - track description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"code"`. tags: - access-codes responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedV1SubmitterAccessCodeList' description: '' post: operationId: access_codes_create summary: Create Access Code parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - access-codes requestBody: content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCodeRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCode' description: '' /api/events/{event}/access-codes/{id}/: get: operationId: access_codes_retrieve summary: Show Access Code parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - submission_type - submission_types - track - tracks description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this submitter access code. required: true tags: - access-codes responses: '200': content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCode' description: '' put: operationId: access_codes_update summary: Update Access Code parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submitter access code. required: true tags: - access-codes requestBody: content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCodeRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCode' description: '' patch: operationId: access_codes_partial_update summary: Update Access Code (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submitter access code. required: true tags: - access-codes requestBody: content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCodeRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/V1SubmitterAccessCode' description: '' delete: operationId: access_codes_destroy summary: Delete Access Code parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submitter access code. required: true tags: - access-codes responses: '204': description: No response body /api/events/{event}/answers/: get: operationId: answers_list summary: List Answers parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - options - question - question.submission_types - question.tracks description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"answer"`. - in: query name: question schema: type: number - in: query name: review schema: type: number - in: query name: speaker schema: type: string - in: query name: submission schema: type: string tags: - answers responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAnswerList' description: '' post: operationId: answers_create summary: Create Answer parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - answers requestBody: content: application/json: schema: $ref: '#/components/schemas/AnswerCreateRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AnswerCreate' description: '' /api/events/{event}/answers/{id}/: get: operationId: answers_retrieve summary: Show Answer parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - options - question - question.submission_types - question.tracks description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this answer. required: true tags: - answers responses: '200': content: application/json: schema: $ref: '#/components/schemas/Answer' description: '' put: operationId: answers_update description: Please note that you cannot change an answer’s related objects (question, submission, review, speaker). summary: Update Answer parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer. required: true tags: - answers requestBody: content: application/json: schema: $ref: '#/components/schemas/AnswerRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Answer' description: '' patch: operationId: answers_partial_update description: Please note that you cannot change an answer’s related objects (question, submission, review, speaker). summary: Update Answer (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer. required: true tags: - answers requestBody: content: application/json: schema: $ref: '#/components/schemas/AnswerRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Answer' description: '' delete: operationId: answers_destroy summary: Delete Answer parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer. required: true tags: - answers responses: '204': description: No response body /api/events/{event}/answers/{id}/log/: get: operationId: answers_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string - in: query name: question schema: type: number - in: query name: review schema: type: number - in: query name: speaker schema: type: string - in: query name: submission schema: type: string tags: - answers responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/feedback/: get: operationId: feedback_list summary: List Feedback parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - speaker - submission description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"submission.title"`. - in: query name: submission schema: type: string description: Filter by submission code tags: - feedback responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFeedbackList' description: '' post: operationId: feedback_create description: Submit feedback for a session. This endpoint is publicly accessible. summary: Create Feedback parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - feedback requestBody: content: application/json: schema: $ref: '#/components/schemas/FeedbackWriteRequest' required: true security: - {} responses: '201': content: application/json: schema: $ref: '#/components/schemas/Feedback' description: '' /api/events/{event}/feedback/{id}/: get: operationId: feedback_retrieve summary: Show Feedback parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - speaker - submission description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this feedback. required: true tags: - feedback responses: '200': content: application/json: schema: $ref: '#/components/schemas/Feedback' description: '' delete: operationId: feedback_destroy summary: Delete Feedback parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this feedback. required: true tags: - feedback responses: '204': description: No response body /api/events/{event}/mail-templates/: get: operationId: mail_templates_list summary: List Mail Templates parameters: - in: path name: event schema: type: string description: The event’s slug required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"role"`,`"subject"`. tags: - mail-templates responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedMailTemplateList' description: '' post: operationId: mail_templates_create summary: Create Mail Template parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - mail-templates requestBody: content: application/json: schema: $ref: '#/components/schemas/MailTemplateRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/MailTemplate' description: '' /api/events/{event}/mail-templates/{id}/: get: operationId: mail_templates_retrieve summary: Show Mail Template parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this mail template. required: true tags: - mail-templates responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailTemplate' description: '' put: operationId: mail_templates_update summary: Update Mail Template parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this mail template. required: true tags: - mail-templates requestBody: content: application/json: schema: $ref: '#/components/schemas/MailTemplateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailTemplate' description: '' patch: operationId: mail_templates_partial_update summary: Update Mail Template (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this mail template. required: true tags: - mail-templates requestBody: content: application/json: schema: $ref: '#/components/schemas/MailTemplateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailTemplate' description: '' delete: operationId: mail_templates_destroy summary: Delete Mail Template parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this mail template. required: true tags: - mail-templates responses: '204': description: No response body /api/events/{event}/mail-templates/{id}/log/: get: operationId: mail_templates_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this mail template. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string tags: - mail-templates responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/question-options/: get: operationId: question_options_list summary: List Question Options parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - question - question.submission_types - question.tracks description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"answer"`. - in: query name: question schema: type: integer tags: - question-options responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAnswerOptionList' description: '' post: operationId: question_options_create summary: Create Question Option parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - question-options requestBody: content: application/json: schema: $ref: '#/components/schemas/AnswerOptionCreateRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AnswerOptionCreate' description: '' /api/events/{event}/question-options/{id}/: get: operationId: question_options_retrieve summary: Show Question Option parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - question - question.submission_types - question.tracks description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this answer option. required: true tags: - question-options responses: '200': content: application/json: schema: $ref: '#/components/schemas/AnswerOption' description: '' put: operationId: question_options_update summary: Update Question Option parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer option. required: true tags: - question-options requestBody: content: application/json: schema: $ref: '#/components/schemas/AnswerOptionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AnswerOption' description: '' patch: operationId: question_options_partial_update summary: Update Question Option (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer option. required: true tags: - question-options requestBody: content: application/json: schema: $ref: '#/components/schemas/AnswerOptionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AnswerOption' description: '' delete: operationId: question_options_destroy description: Deleting a question option is only possible if it hasn’t been used in any answers yet. summary: Delete Question Option parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer option. required: true tags: - question-options responses: '204': description: No response body /api/events/{event}/question-options/{id}/log/: get: operationId: question_options_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this answer option. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string - in: query name: question schema: type: integer tags: - question-options responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/questions/: get: operationId: questions_list summary: List Questions parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - options - submission_types - tracks description: Select fields to expand. - in: query name: is_public schema: type: boolean - in: query name: is_visible_to_reviewers schema: type: boolean - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"question"`. - in: query name: target schema: type: string title: Field type enum: - reviewer - speaker - submission description: |- Do you require an answer from every speaker or for every session? * `submission` - per proposal * `speaker` - per speaker * `reviewer` - for reviewers - in: query name: variant schema: type: string enum: - boolean - choices - date - datetime - file - multiple_choice - number - string - text - url description: |- * `number` - Number * `string` - Text (one-line) * `text` - Multi-line text * `url` - URL * `date` - Date * `datetime` - Date and time * `boolean` - Yes/No * `file` - File upload * `choices` - Choose one from a list * `multiple_choice` - Choose multiple from a list tags: - questions responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedQuestionList' description: '' post: operationId: questions_create summary: Create Question parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - questions requestBody: content: application/json: schema: $ref: '#/components/schemas/QuestionOrgaRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QuestionOrga' description: '' /api/events/{event}/questions/{id}/: get: operationId: questions_retrieve summary: Show Question parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - options - submission_types - tracks description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this question. required: true tags: - questions responses: '200': content: application/json: schema: $ref: '#/components/schemas/Question' description: '' put: operationId: questions_update description: Please note that any update to the options field will delete the existing question options (if still possible) and replace them with the new ones. Use the AnswerOption API for granular question option modifications. summary: Update Question parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this question. required: true tags: - questions requestBody: content: application/json: schema: $ref: '#/components/schemas/QuestionOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/QuestionOrga' description: '' patch: operationId: questions_partial_update description: Please note that any update to the options field will delete the existing question options (if still possible) and replace them with the new ones. Use the AnswerOption API for granular question option modifications. summary: Update Question (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this question. required: true tags: - questions requestBody: content: application/json: schema: $ref: '#/components/schemas/QuestionOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/QuestionOrga' description: '' delete: operationId: questions_destroy summary: Delete Question parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this question. required: true tags: - questions responses: '204': description: No response body /api/events/{event}/questions/{id}/icon/: get: operationId: questions_icon_retrieve description: Returns the icon for this question as an SVG image if the question has an icon. parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this question. required: true tags: - questions security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Question' description: '' /api/events/{event}/questions/{id}/log/: get: operationId: questions_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this question. required: true - in: query name: is_public schema: type: boolean - in: query name: is_visible_to_reviewers schema: type: boolean - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string - in: query name: target schema: type: string title: Field type enum: - reviewer - speaker - submission description: |- Do you require an answer from every speaker or for every session? * `submission` - per proposal * `speaker` - per speaker * `reviewer` - for reviewers - in: query name: variant schema: type: string enum: - boolean - choices - date - datetime - file - multiple_choice - number - string - text - url description: |- * `number` - Number * `string` - Text (one-line) * `text` - Multi-line text * `url` - URL * `date` - Date * `datetime` - Date and time * `boolean` - Yes/No * `file` - File upload * `choices` - Choose one from a list * `multiple_choice` - Choose multiple from a list tags: - questions responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/reviews/: get: operationId: reviews_list summary: List Reviews parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - scores.category - submission - submission.speakers - submission.submission_type - submission.tags - submission.track - user description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"submission.title"`,`"user.name"`. - in: query name: speaker schema: type: string description: Filter by speaker code (for the submission being reviewed) - in: query name: submission schema: type: string description: Filter by submission code - in: query name: submission__content_locale schema: type: string description: Filter by submission content locale - in: query name: submission__pending_state schema: type: array items: type: string nullable: true title: Pending proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- Filter by submission pending state * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: submission__state schema: type: array items: type: string title: Proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- Filter by submission state * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: submission__submission_type schema: type: integer description: Filter by submission type - in: query name: submission__track schema: type: integer description: Filter by submission track - in: query name: user schema: type: string nullable: true description: Filter by reviewer code tags: - reviews responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedReviewList' description: '' post: operationId: reviews_create summary: Create Review parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - reviews requestBody: content: application/json: schema: $ref: '#/components/schemas/ReviewWriteRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Review' description: '' /api/events/{event}/reviews/{id}/: get: operationId: reviews_retrieve summary: Show Review parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - scores.category - submission - user description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this review. required: true tags: - reviews responses: '200': content: application/json: schema: $ref: '#/components/schemas/Review' description: '' put: operationId: reviews_update summary: Update Reviews parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this review. required: true tags: - reviews requestBody: content: application/json: schema: $ref: '#/components/schemas/ReviewWriteRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Review' description: '' patch: operationId: reviews_partial_update summary: Update Reviews (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this review. required: true tags: - reviews requestBody: content: application/json: schema: $ref: '#/components/schemas/ReviewWriteRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Review' description: '' delete: operationId: reviews_destroy summary: Delete Reviews parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this review. required: true tags: - reviews responses: '204': description: No response body /api/events/{event}/reviews/{id}/log/: get: operationId: reviews_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this review. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string - in: query name: speaker schema: type: string description: Filter by speaker code (for the submission being reviewed) - in: query name: submission schema: type: string description: Filter by submission code - in: query name: submission__content_locale schema: type: string description: Filter by submission content locale - in: query name: submission__pending_state schema: type: array items: type: string nullable: true title: Pending proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- Filter by submission pending state * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: submission__state schema: type: array items: type: string title: Proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- Filter by submission state * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: submission__submission_type schema: type: integer description: Filter by submission type - in: query name: submission__track schema: type: integer description: Filter by submission track - in: query name: user schema: type: string nullable: true description: Filter by reviewer code tags: - reviews responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/rooms/: get: operationId: rooms_list summary: List Rooms parameters: - in: path name: event schema: type: string description: The event’s slug required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"name"`. tags: - rooms responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedRoomList' description: '' post: operationId: rooms_create summary: Create Rooms parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - rooms requestBody: content: application/json: schema: $ref: '#/components/schemas/RoomOrgaRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RoomOrga' description: '' /api/events/{event}/rooms/{id}/: get: operationId: rooms_retrieve summary: Show Rooms parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this room. required: true tags: - rooms responses: '200': content: application/json: schema: $ref: '#/components/schemas/Room' description: '' put: operationId: rooms_update summary: Update Rooms parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this room. required: true tags: - rooms requestBody: content: application/json: schema: $ref: '#/components/schemas/RoomOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RoomOrga' description: '' patch: operationId: rooms_partial_update summary: Update Rooms (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this room. required: true tags: - rooms requestBody: content: application/json: schema: $ref: '#/components/schemas/RoomOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RoomOrga' description: '' delete: operationId: rooms_destroy summary: Delete Rooms parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this room. required: true tags: - rooms responses: '204': description: No response body /api/events/{event}/rooms/{id}/log/: get: operationId: rooms_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this room. required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string tags: - rooms responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/schedules/: get: operationId: schedules_list description: This endpoint returns a list of schedules. As schedule data can get very complex when expanded, the list endpoint only contains metadata. Please refer to the detail endpoint documentation to see how to retrieve slots, submissions and speakers. summary: List Schedules parameters: - in: path name: event schema: type: string description: The event’s slug required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"version"`. tags: - schedules responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedScheduleListList' description: '' /api/events/{event}/schedules/{id}/: get: operationId: schedules_retrieve description: In addition to the standard lookup by ID, you can also use the special /wip/ and /latest/ URL paths to access the unpublished and latest published schedules. To receive most schedule data, query the endpoint with ``?expand=room,slots.submission.speakers``. summary: Show Schedule parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - slots - slots.room - slots.submission - slots.submission.speakers - slots.submission.submission_type - slots.submission.track description: Select fields to expand. - in: path name: id schema: type: string pattern: ^[^/]+$ required: true tags: - schedules responses: '200': content: application/json: schema: $ref: '#/components/schemas/Schedule' description: '' /api/events/{event}/schedules/{id}/exporters/{name}/: get: operationId: schedules_exporters_retrieve description: Retrieve the content of a specific schedule exporter by name. Requires 'action' permissions. summary: Get Exporter Content parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: string pattern: ^[^/]+$ required: true - in: query name: lang schema: type: string description: Language code for the export content. - in: path name: name schema: type: string description: The name of the exporter. required: true tags: - schedules responses: '200': description: Format depends on the chosen exporter. '404': description: Exporter or schedule not found. /api/events/{event}/schedules/by-version/: get: operationId: schedules_by_version_retrieve description: This endpoint returns a plain string URL for a specific schedule using its version name (e.g., '1.0', 'My Release') instead of its numeric ID. You have to pass either a version or request the latest version. Returns an empty string if the schedule is not found or not accessible. summary: Get schedule URL by version parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: latest schema: type: boolean description: Pass this parameter to get the URL for the current schedule. - in: query name: version schema: type: string description: The version string/name of the schedule (e.g., '1.0', 'Final Version'). tags: - schedules responses: '200': description: Returns a plain text URL '404': description: Schedule not found or not accessible /api/events/{event}/schedules/release/: post: operationId: schedules_release_create description: Freezes the current Work-in-Progress (WIP) schedule, creating a new named version. This makes the WIP schedule available under the given version name and creates a new empty WIP schedule. summary: Release a new schedule version parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - schedules requestBody: content: application/json: schema: $ref: '#/components/schemas/ScheduleReleaseRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Schedule' description: Schedule released successfully. '400': description: Invalid data provided (e.g., version name already exists). '403': description: Permission denied. /api/events/{event}/slots/: get: operationId: slots_list description: This endpoint always returns a filtered list. If you don’t provide any filters of your own, it will be filtered to show only talk slots in the latest published schedule. summary: List Talk Slots parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - room - schedule - submission - submission.answers - submission.answers.question - submission.resources - submission.speakers - submission.submission_type - submission.track description: Select fields to expand. - in: query name: is_visible schema: type: boolean - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"submission.title"`,`"submission.speakers.name"`. - in: query name: room schema: type: integer - in: query name: schedule schema: type: integer - in: query name: schedule_version schema: type: string nullable: true - in: query name: speaker schema: type: string - in: query name: submission schema: type: string tags: - slots responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTalkSlotList' description: '' /api/events/{event}/slots/{id}/: get: operationId: slots_retrieve summary: Show Talk Slot parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - room - schedule - submission - submission.answers - submission.answers.question - submission.resources - submission.speakers - submission.submission_type - submission.track description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this talk slot. required: true tags: - slots responses: '200': content: application/json: schema: $ref: '#/components/schemas/TalkSlot' description: '' put: operationId: slots_update description: Only talk slots in the WIP schedule can be changed – once a schedule version is frozen, its talk slots can’t be modified anymore. summary: Update Talk Slot parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this talk slot. required: true tags: - slots requestBody: content: application/json: schema: $ref: '#/components/schemas/TalkSlotRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/TalkSlot' description: '' patch: operationId: slots_partial_update description: Only talk slots in the WIP schedule can be changed – once a schedule version is frozen, its talk slots can’t be modified anymore. summary: Update Talk Slot (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this talk slot. required: true tags: - slots requestBody: content: application/json: schema: $ref: '#/components/schemas/TalkSlotRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/TalkSlot' description: '' /api/events/{event}/slots/{id}/ical/: get: operationId: slots_ical_retrieve description: Export a single talk slot as an iCalendar file. summary: Export Talk Slot as iCalendar file parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this talk slot. required: true tags: - slots responses: '200': content: application/json: schema: $ref: '#/components/schemas/TalkSlot' description: '' /api/events/{event}/speaker-information/: get: operationId: speaker_information_list summary: List Speaker Information parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - limit_tracks - limit_types description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"title"`. tags: - speaker-information responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedSpeakerInformationList' description: '' post: operationId: speaker_information_create summary: Create Speaker Information parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - speaker-information requestBody: content: application/json: schema: $ref: '#/components/schemas/SpeakerInformationRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SpeakerInformation' description: '' /api/events/{event}/speaker-information/{id}/: get: operationId: speaker_information_retrieve summary: Show Speaker Information parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - limit_tracks - limit_types description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this speaker information. required: true tags: - speaker-information responses: '200': content: application/json: schema: $ref: '#/components/schemas/SpeakerInformation' description: '' put: operationId: speaker_information_update summary: Update Speaker Information parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this speaker information. required: true tags: - speaker-information requestBody: content: application/json: schema: $ref: '#/components/schemas/SpeakerInformationRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SpeakerInformation' description: '' patch: operationId: speaker_information_partial_update summary: Update Speaker Information (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this speaker information. required: true tags: - speaker-information requestBody: content: application/json: schema: $ref: '#/components/schemas/SpeakerInformationRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SpeakerInformation' description: '' delete: operationId: speaker_information_destroy summary: Delete Speaker Information parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this speaker information. required: true tags: - speaker-information responses: '204': description: No response body /api/events/{event}/speaker-information/{id}/log/: get: operationId: speaker_information_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this speaker information. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string tags: - speaker-information responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/speakers/: get: operationId: speakers_list summary: List Speakers parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - answers - answers.question - submissions description: Select fields to expand. - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"name"`. Organiser search also includes email addresses. tags: - speakers responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedSpeakerList' description: '' /api/events/{event}/speakers/{code__iexact}/: get: operationId: speakers_retrieve summary: Show Speaker parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - answers - answers.question - submissions description: Select fields to expand. tags: - speakers responses: '200': content: application/json: schema: $ref: '#/components/schemas/Speaker' description: '' put: operationId: speakers_update summary: Update Speaker parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - speakers requestBody: content: application/json: schema: $ref: '#/components/schemas/SpeakerUpdateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SpeakerOrga' description: '' patch: operationId: speakers_partial_update summary: Update Speaker (Partial Update) parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - speakers requestBody: content: application/json: schema: $ref: '#/components/schemas/SpeakerUpdateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SpeakerOrga' description: '' /api/events/{event}/submission-types/: get: operationId: submission_types_list summary: List Submission Types parameters: - in: path name: event schema: type: string description: The event’s slug required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"name"`. tags: - submission-types responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedSubmissionTypeList' description: '' post: operationId: submission_types_create summary: Create Submission Types parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - submission-types requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionTypeRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmissionType' description: '' /api/events/{event}/submission-types/{id}/: get: operationId: submission_types_retrieve summary: Show Submission Types parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submission type. required: true tags: - submission-types responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionType' description: '' put: operationId: submission_types_update summary: Update Submission Types parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submission type. required: true tags: - submission-types requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionTypeRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionType' description: '' patch: operationId: submission_types_partial_update summary: Update Submission Types (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submission type. required: true tags: - submission-types requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionTypeRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionType' description: '' delete: operationId: submission_types_destroy summary: Delete Submission Types parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submission type. required: true tags: - submission-types responses: '204': description: No response body /api/events/{event}/submission-types/{id}/log/: get: operationId: submission_types_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this submission type. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string tags: - submission-types responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/submissions/: get: operationId: submissions_list summary: List Submissions parameters: - in: query name: content_locale schema: type: string - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - answers - answers.question - resources - slots - slots.room - speakers - speakers.answers - submission_type - tags - track description: Select fields to expand. - in: query name: is_featured schema: type: boolean - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: pending_state schema: type: array items: type: string nullable: true title: Pending proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: q schema: type: string description: A search term, searching in `"title"`,`"speaker.name"`. - in: query name: state schema: type: array items: type: string title: Proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: submission_type schema: type: integer - in: query name: track schema: type: integer tags: - submissions responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedSubmissionList' description: '' post: operationId: submissions_create description: Note that a submission created via the API will start in the submitted state and without speakers. No notification emails will be sent, and the submission may be in an invalid state (e.g. if the event has required custom fields). summary: Create Submission parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' /api/events/{event}/submissions/{code__iexact}/: get: operationId: submissions_retrieve summary: Show Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: expand schema: type: array items: type: string enum: - answers - resources - slots - slots.room - speakers - submission_type - tags - track description: Select fields to expand. tags: - submissions responses: '200': content: application/json: schema: $ref: '#/components/schemas/Submission' description: '' put: operationId: submissions_update summary: Update Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' patch: operationId: submissions_partial_update summary: Update Submission (Partial Update) parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionOrgaRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' delete: operationId: submissions_destroy description: This endpoint is only available to server administrators. summary: Delete Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions responses: '204': description: No response body /api/events/{event}/submissions/{code__iexact}/accept/: post: operationId: submissions_accept_create summary: Accept Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Submission' description: '' /api/events/{event}/submissions/{code__iexact}/add-speaker/: post: operationId: submissions_add_speaker_create summary: Add Speaker to Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/AddSpeakerRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' /api/events/{event}/submissions/{code__iexact}/cancel/: post: operationId: submissions_cancel_create summary: Cancel Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Submission' description: '' /api/events/{event}/submissions/{code__iexact}/confirm/: post: operationId: submissions_confirm_create summary: Confirm Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Submission' description: '' /api/events/{event}/submissions/{code__iexact}/invitations/: post: operationId: submissions_invitations_create summary: Invite Speaker to Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/AddSpeakerRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' /api/events/{event}/submissions/{code__iexact}/invitations/{invitation_id}/: delete: operationId: submissions_invitations_destroy summary: Retract Speaker Invitation parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: invitation_id schema: type: string pattern: ^[0-9]+$ required: true tags: - submissions responses: '204': description: No response body /api/events/{event}/submissions/{code__iexact}/log/: get: operationId: submissions_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: code__iexact schema: type: string required: true - in: query name: content_locale schema: type: string - in: path name: event schema: type: string description: The event’s slug required: true - in: query name: is_featured schema: type: boolean - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: pending_state schema: type: array items: type: string nullable: true title: Pending proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - name: q required: false in: query description: A search term. schema: type: string - in: query name: state schema: type: array items: type: string title: Proposal state enum: - accepted - canceled - confirmed - draft - rejected - submitted - withdrawn description: |- * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft explode: true style: form - in: query name: submission_type schema: type: integer - in: query name: track schema: type: integer tags: - submissions responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/submissions/{code__iexact}/make-submitted/: post: operationId: submissions_make_submitted_create summary: Make Submission Submitted parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Submission' description: '' /api/events/{event}/submissions/{code__iexact}/reject/: post: operationId: submissions_reject_create summary: Reject Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Submission' description: '' /api/events/{event}/submissions/{code__iexact}/remove-speaker/: post: operationId: submissions_remove_speaker_create summary: Remove Speaker from Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/RemoveSpeakerRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' /api/events/{event}/submissions/{code__iexact}/resources/: post: operationId: submissions_resources_create summary: Add Resource to Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourceWriteRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubmissionOrga' description: '' /api/events/{event}/submissions/{code__iexact}/resources/{resource_id}/: delete: operationId: submissions_resources_destroy summary: Remove Resource from Submission parameters: - in: path name: code__iexact schema: type: string required: true - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: resource_id schema: type: string pattern: ^[0-9]+$ required: true tags: - submissions responses: '204': description: No response body /api/events/{event}/submissions/{code}/favourite/: post: operationId: submissions_favourite_create description: This endpoint is used by the schedule widget and uses session authentication. summary: Add or remove a submission from favourites parameters: - in: path name: code schema: type: string description: The event’s slug required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions responses: '200': description: No response body '404': description: Submission not found. delete: operationId: submissions_favourite_destroy description: This endpoint is used by the schedule widget and uses session authentication. summary: Add or remove a submission from favourites parameters: - in: path name: code schema: type: string description: The event’s slug required: true - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions responses: '200': description: No response body '404': description: Submission not found. /api/events/{event}/submissions/favourites/: get: operationId: submissions_favourites_retrieve description: This endpoint is used by the schedule widget and uses session authentication. summary: List favourite submissions parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - submissions responses: '200': content: application/json: schema: type: array items: type: string description: '' /api/events/{event}/tags/: get: operationId: tags_list summary: List tags parameters: - in: path name: event schema: type: string description: The event’s slug required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"tag"`. tags: - tags responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTagList' description: '' post: operationId: tags_create summary: Create Tags parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - tags requestBody: content: application/json: schema: $ref: '#/components/schemas/TagRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Tag' description: '' /api/events/{event}/tags/{id}/: get: operationId: tags_retrieve summary: Show Tags parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tag. required: true tags: - tags responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tag' description: '' put: operationId: tags_update summary: Update Tags parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tag. required: true tags: - tags requestBody: content: application/json: schema: $ref: '#/components/schemas/TagRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tag' description: '' patch: operationId: tags_partial_update summary: Update Tags (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tag. required: true tags: - tags requestBody: content: application/json: schema: $ref: '#/components/schemas/TagRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tag' description: '' delete: operationId: tags_destroy summary: Delete Tags parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tag. required: true tags: - tags responses: '204': description: No response body /api/events/{event}/tags/{id}/log/: get: operationId: tags_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tag. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string tags: - tags responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/events/{event}/tracks/: get: operationId: tracks_list summary: List Tracks parameters: - in: path name: event schema: type: string description: The event’s slug required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"name"`. tags: - tracks responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTrackList' description: '' post: operationId: tracks_create summary: Create Tracks parameters: - in: path name: event schema: type: string description: The event’s slug required: true tags: - tracks requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Track' description: '' /api/events/{event}/tracks/{id}/: get: operationId: tracks_retrieve summary: Show Tracks parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks responses: '200': content: application/json: schema: $ref: '#/components/schemas/Track' description: '' put: operationId: tracks_update summary: Update Tracks parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Track' description: '' patch: operationId: tracks_partial_update summary: Update Tracks (Partial Update) parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Track' description: '' delete: operationId: tracks_destroy summary: Delete Tracks parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks responses: '204': description: No response body /api/events/{event}/tracks/{id}/log/: get: operationId: tracks_log_list description: Changelog entries related to this object. summary: Object changelog parameters: - in: path name: event schema: type: string description: The event’s slug required: true - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: q required: false in: query description: A search term. schema: type: string tags: - tracks responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedActivityLogList' description: '' /api/organisers/{organiser}/teams/: get: operationId: api_organisers_teams_list summary: List Teams parameters: - in: query name: expand schema: type: array items: type: string enum: - invites - limit_tracks - members description: Select fields to expand. - name: o required: false in: query description: Which field to use when ordering the results. schema: type: string - in: path name: organiser schema: type: string description: The event’s slug required: true - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string description: A search term, searching in `"name"`. tags: - teams responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTeamList' description: '' post: operationId: api_organisers_teams_create summary: Create Team parameters: - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Team' description: '' /api/organisers/{organiser}/teams/{id}/: get: operationId: api_organisers_teams_retrieve summary: Show Team parameters: - in: query name: expand schema: type: array items: type: string enum: - invites - limit_tracks - members description: Select fields to expand. - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: '' put: operationId: api_organisers_teams_update summary: Update Team parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: '' patch: operationId: api_organisers_teams_partial_update summary: Update Team (Partial Update) parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: '' delete: operationId: api_organisers_teams_destroy summary: Delete Team parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams responses: '204': description: No response body /api/organisers/{organiser}/teams/{id}/invite/: post: operationId: api_organisers_teams_invite_create description: Creates a team invite, and sends an invite. summary: Invite Member to Team parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamInviteCreateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: '' /api/organisers/{organiser}/teams/{id}/invites/{invite_id}/: delete: operationId: api_organisers_teams_invites_destroy summary: Delete Team Invite parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: invite_id schema: type: integer required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams responses: '204': description: No response body /api/organisers/{organiser}/teams/{id}/remove_member/: post: operationId: api_organisers_teams_remove_member_create summary: Remove Member from Team parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this team. required: true - in: path name: organiser schema: type: string description: The event’s slug required: true tags: - teams requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamMemberRemoveRequest' required: true responses: '204': description: Member removed successfully. '400': description: Member cannot be removed as it may leave events inaccessible. /api/upload/: post: operationId: File upload description: 'Upload a file (image or PDF) for temporary storage. Allowed file types: PNG, JPEG, GIF, PDF.' tags: - file-uploads requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '201': content: application/json: schema: $ref: '#/components/schemas/FileResponse' examples: '': value: id: file:1234-5678 description: '' '400': content: application/json: schema: type: object description: Validation error description: '' components: schemas: ActivityLog: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true timestamp: type: string format: date-time readOnly: true action_type: type: string maxLength: 200 is_orga_action: type: boolean person: $ref: '#/components/schemas/User' display: type: string readOnly: true data: nullable: true required: - action_type - display - id - person - timestamp AddSpeakerRequest: type: object properties: email: type: string format: email minLength: 1 name: type: string nullable: true locale: type: string nullable: true required: - email Answer: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true question: type: integer readOnly: true answer: type: string answer_file: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. submission: type: string readOnly: true review: type: integer readOnly: true person: type: string readOnly: true options: type: array items: type: integer required: - answer - id - options - person - question - review - submission AnswerCreate: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true question: type: integer answer: type: string answer_file: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. submission: type: string nullable: true review: type: integer nullable: true person: type: string nullable: true options: type: array items: type: integer required: - answer - id - question AnswerCreateRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: question: type: integer answer: type: string minLength: 1 answer_file: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. submission: type: string minLength: 1 nullable: true review: type: integer nullable: true person: type: string minLength: 1 nullable: true options: type: array items: type: integer required: - answer - question AnswerOption: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true question: type: integer readOnly: true answer: allOf: - $ref: '#/components/schemas/Multi-language string' title: Response position: type: integer maximum: 2147483647 minimum: -2147483648 identifier: type: string required: - answer - id - question AnswerOptionCreate: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true question: type: integer answer: allOf: - $ref: '#/components/schemas/Multi-language string' title: Response position: type: integer maximum: 2147483647 minimum: -2147483648 identifier: type: string required: - answer - id - question AnswerOptionCreateRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: question: type: integer answer: allOf: - $ref: '#/components/schemas/Multi-language string' title: Response position: type: integer maximum: 2147483647 minimum: -2147483648 identifier: type: string required: - answer - question AnswerOptionRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: answer: allOf: - $ref: '#/components/schemas/Multi-language string' title: Response position: type: integer maximum: 2147483647 minimum: -2147483648 identifier: type: string required: - answer AnswerRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: answer: type: string minLength: 1 answer_file: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. options: type: array items: type: integer required: - answer - options Availability: type: object properties: start: type: string format: date-time end: type: string format: date-time allDay: type: boolean readOnly: true description: Computed field indicating if an availability fills an entire day. required: - allDay - end - start AvailabilityRequest: type: object properties: start: type: string format: date-time end: type: string format: date-time required: - end - start BlankEnum: enum: - '' Event: type: object properties: name: $ref: '#/components/schemas/Multi-language string' slug: type: string title: Short form description: The slug may only contain letters, numbers, dots and dashes. pattern: ^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?$ maxLength: 50 is_public: type: boolean title: Event is public date_from: type: string format: date title: Event start date date_to: type: string format: date title: Event end date timezone: allOf: - $ref: '#/components/schemas/TimezoneEnum' description: |+ All event dates will be localised and interpreted to be in this timezone. email: type: string format: email title: Organiser email address description: Will be used as Reply-To in emails. maxLength: 254 primary_color: type: string nullable: true title: Main event colour description: 'Provide a hex value like #00ff00 if you want to style pretalx in your event’s colour scheme.' pattern: '#([0-9A-Fa-f]{3}){1,2}' maxLength: 7 custom_domain: type: string format: uri nullable: true description: Enter a custom domain, such as https://my.event.example.org maxLength: 200 logo: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. header_image: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. og_image: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. locale: allOf: - $ref: '#/components/schemas/LocaleEnum' title: Default language locales: type: array items: type: string description: Is a list of active event locales. readOnly: true content_locales: type: array items: type: string description: Is a list of active content locales. readOnly: true required: - content_locales - date_from - date_to - email - locales - name - slug EventList: type: object properties: name: $ref: '#/components/schemas/Multi-language string' slug: type: string title: Short form description: The slug may only contain letters, numbers, dots and dashes. pattern: ^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?$ maxLength: 50 is_public: type: boolean title: Event is public date_from: type: string format: date title: Event start date date_to: type: string format: date title: Event end date timezone: allOf: - $ref: '#/components/schemas/TimezoneEnum' description: |+ All event dates will be localised and interpreted to be in this timezone. required: - date_from - date_to - name - slug Feedback: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true submission: type: string readOnly: true speaker: type: string readOnly: true rating: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true review: type: string title: Feedback required: - id - review - speaker - submission FeedbackWriteRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: submission: type: string minLength: 1 speaker: type: string minLength: 1 nullable: true rating: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true review: type: string minLength: 1 title: Feedback required: - review - submission FileResponse: type: object description: Serializer for file upload response. properties: id: type: string description: Cached file identifier required: - id IconEnum: enum: - '-' - bsky - discord - github - instagram - linkedin - mastodon - twitter - web - youtube type: string description: |- * `-` - No icon * `bsky` - Bluesky * `discord` - Discord * `github` - GitHub * `instagram` - Instagram * `linkedin` - LinkedIn * `mastodon` - Mastodon * `twitter` - Twitter * `web` - Website * `youtube` - YouTube LocaleEnum: enum: - en - de - de-formal - ar - bg - cs - el - es - fr - it - ja-jp - ko - nl - pl - pt-br - pt-pt - vi - zh-hant - zh-hans type: string description: |- * `en` - English * `de` - German * `de-formal` - German (formal) * `ar` - Arabic * `bg` - Bulgarian * `cs` - Czech * `el` - Greek * `es` - Spanish * `fr` - French * `it` - Italian * `ja-jp` - Japanese * `ko` - Korean * `nl` - Dutch * `pl` - Polish * `pt-br` - Brazilian Portuguese * `pt-pt` - Portuguese * `vi` - Vietnamese * `zh-hant` - Traditional Chinese (Taiwan) * `zh-hans` - Simplified Chinese MailTemplate: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true role: nullable: true $ref: '#/components/schemas/RoleEnum' subject: $ref: '#/components/schemas/Multi-language string' text: $ref: '#/components/schemas/Multi-language string' reply_to: type: string nullable: true description: Change the Reply-To address if you do not want to use the default organiser address maxLength: 200 bcc: type: string nullable: true description: Enter comma separated addresses. Will receive a blind copy of every mail sent from this template. This may be a LOT! maxLength: 1000 required: - id - role - subject - text MailTemplateRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: subject: $ref: '#/components/schemas/Multi-language string' text: $ref: '#/components/schemas/Multi-language string' reply_to: type: string nullable: true description: Change the Reply-To address if you do not want to use the default organiser address maxLength: 200 bcc: type: string nullable: true description: Enter comma separated addresses. Will receive a blind copy of every mail sent from this template. This may be a LOT! maxLength: 1000 required: - subject - text Multi-language string: type: object additionalProperties: type: string example: en: English text de: Deutscher Text NestedAnswerOption: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true answer: allOf: - $ref: '#/components/schemas/Multi-language string' title: Response position: type: integer maximum: 2147483647 minimum: -2147483648 required: - answer - id NestedAnswerOptionRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: answer: allOf: - $ref: '#/components/schemas/Multi-language string' title: Response position: type: integer maximum: 2147483647 minimum: -2147483648 required: - answer NullEnum: enum: - null PaginatedActivityLogList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/ActivityLog' PaginatedAnswerList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Answer' PaginatedAnswerOptionList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/AnswerOption' PaginatedFeedbackList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Feedback' PaginatedMailTemplateList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/MailTemplate' PaginatedQuestionList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Question' PaginatedReviewList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Review' PaginatedRoomList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/Room' PaginatedScheduleListList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/ScheduleList' PaginatedSpeakerInformationList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/SpeakerInformation' PaginatedSpeakerList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Speaker' PaginatedSubmissionList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Submission' PaginatedSubmissionTypeList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/SubmissionType' PaginatedTagList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Tag' PaginatedTalkSlotList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/TalkSlot' PaginatedTeamList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Team' PaginatedTrackList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/Track' PaginatedV1SubmitterAccessCodeList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/V1SubmitterAccessCode' PendingStateEnum: enum: - submitted - accepted - confirmed - rejected - canceled - withdrawn - draft type: string description: |- * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft Question: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true identifier: type: string question: allOf: - $ref: '#/components/schemas/Multi-language string' title: Label help_text: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: Will appear just like this text below the custom input field. You can use Markdown here. default_answer: type: string nullable: true variant: $ref: '#/components/schemas/VariantEnum' target: allOf: - $ref: '#/components/schemas/TargetEnum' title: Field type description: |- Do you require an answer from every speaker or for every session? * `submission` - per proposal * `speaker` - per speaker * `reviewer` - for reviewers deadline: type: string format: date-time nullable: true description: Set a deadline to make this field required after the given date. freeze_after: type: string format: date-time nullable: true description: Set a deadline to stop changes to responses after the given date. question_required: allOf: - $ref: '#/components/schemas/QuestionRequiredEnum' title: Field required position: type: integer maximum: 2147483647 minimum: -2147483648 tracks: type: array items: type: integer description: You can limit this field to some tracks. Leave empty to apply to all tracks. submission_types: type: array items: type: integer title: Session types title: Session types description: You can limit this field to some session types. Leave empty to apply to all session types. options: type: array items: type: integer min_length: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Minimum text length description: Minimum allowed text in characters or words (set in CfP settings). max_length: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Maximum text length description: Maximum allowed text length in characters or words (set in CfP settings). min_number: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ nullable: true title: Minimum value max_number: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ nullable: true title: Maximum value min_date: type: string format: date nullable: true title: Minimum value max_date: type: string format: date nullable: true title: Maximum value min_datetime: type: string format: date-time nullable: true title: Minimum value max_datetime: type: string format: date-time nullable: true title: Maximum value icon: nullable: true description: |- Custom URL fields that are shown publicly can use an icon when displaying the link. * `-` - No icon * `bsky` - Bluesky * `discord` - Discord * `github` - GitHub * `instagram` - Instagram * `linkedin` - LinkedIn * `mastodon` - Mastodon * `twitter` - Twitter * `web` - Website * `youtube` - YouTube oneOf: - $ref: '#/components/schemas/IconEnum' - $ref: '#/components/schemas/NullEnum' required: - id - options - question QuestionOrga: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true identifier: type: string question: allOf: - $ref: '#/components/schemas/Multi-language string' title: Label help_text: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: Will appear just like this text below the custom input field. You can use Markdown here. default_answer: type: string nullable: true variant: $ref: '#/components/schemas/VariantEnum' target: allOf: - $ref: '#/components/schemas/TargetEnum' title: Field type description: |- Do you require an answer from every speaker or for every session? * `submission` - per proposal * `speaker` - per speaker * `reviewer` - for reviewers deadline: type: string format: date-time nullable: true description: Set a deadline to make this field required after the given date. freeze_after: type: string format: date-time nullable: true description: Set a deadline to stop changes to responses after the given date. question_required: allOf: - $ref: '#/components/schemas/QuestionRequiredEnum' title: Field required position: type: integer maximum: 2147483647 minimum: -2147483648 tracks: type: array items: type: integer description: You can limit this field to some tracks. Leave empty to apply to all tracks. submission_types: type: array items: type: integer title: Session types title: Session types description: You can limit this field to some session types. Leave empty to apply to all session types. options: type: array items: $ref: '#/components/schemas/NestedAnswerOption' min_length: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Minimum text length description: Minimum allowed text in characters or words (set in CfP settings). max_length: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Maximum text length description: Maximum allowed text length in characters or words (set in CfP settings). min_number: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ nullable: true title: Minimum value max_number: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ nullable: true title: Maximum value min_date: type: string format: date nullable: true title: Minimum value max_date: type: string format: date nullable: true title: Maximum value min_datetime: type: string format: date-time nullable: true title: Minimum value max_datetime: type: string format: date-time nullable: true title: Maximum value icon: nullable: true description: |- Custom URL fields that are shown publicly can use an icon when displaying the link. * `-` - No icon * `bsky` - Bluesky * `discord` - Discord * `github` - GitHub * `instagram` - Instagram * `linkedin` - LinkedIn * `mastodon` - Mastodon * `twitter` - Twitter * `web` - Website * `youtube` - YouTube oneOf: - $ref: '#/components/schemas/IconEnum' - $ref: '#/components/schemas/NullEnum' active: type: boolean description: Inactive fields will no longer be shown. is_public: type: boolean title: Publish answers description: Responses will be shown on session or speaker pages as appropriate. contains_personal_data: type: boolean title: Responses contain personal data description: If a user deletes their account, responses containing personal data will be removed, too. is_visible_to_reviewers: type: boolean title: Show answers to reviewers description: Should responses to this field be shown to reviewers? This is helpful if you want to collect personal information, but use anonymous reviews. required: - id - question QuestionOrgaRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: identifier: type: string question: allOf: - $ref: '#/components/schemas/Multi-language string' title: Label help_text: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: Will appear just like this text below the custom input field. You can use Markdown here. default_answer: type: string nullable: true variant: $ref: '#/components/schemas/VariantEnum' target: allOf: - $ref: '#/components/schemas/TargetEnum' title: Field type description: |- Do you require an answer from every speaker or for every session? * `submission` - per proposal * `speaker` - per speaker * `reviewer` - for reviewers deadline: type: string format: date-time nullable: true description: Set a deadline to make this field required after the given date. freeze_after: type: string format: date-time nullable: true description: Set a deadline to stop changes to responses after the given date. question_required: allOf: - $ref: '#/components/schemas/QuestionRequiredEnum' title: Field required position: type: integer maximum: 2147483647 minimum: -2147483648 tracks: type: array items: type: integer description: You can limit this field to some tracks. Leave empty to apply to all tracks. submission_types: type: array items: type: integer title: Session types title: Session types description: You can limit this field to some session types. Leave empty to apply to all session types. options: type: array items: $ref: '#/components/schemas/NestedAnswerOptionRequest' min_length: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Minimum text length description: Minimum allowed text in characters or words (set in CfP settings). max_length: type: integer maximum: 2147483647 minimum: 0 nullable: true title: Maximum text length description: Maximum allowed text length in characters or words (set in CfP settings). min_number: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ nullable: true title: Minimum value max_number: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ nullable: true title: Maximum value min_date: type: string format: date nullable: true title: Minimum value max_date: type: string format: date nullable: true title: Maximum value min_datetime: type: string format: date-time nullable: true title: Minimum value max_datetime: type: string format: date-time nullable: true title: Maximum value icon: nullable: true description: |- Custom URL fields that are shown publicly can use an icon when displaying the link. * `-` - No icon * `bsky` - Bluesky * `discord` - Discord * `github` - GitHub * `instagram` - Instagram * `linkedin` - LinkedIn * `mastodon` - Mastodon * `twitter` - Twitter * `web` - Website * `youtube` - YouTube oneOf: - $ref: '#/components/schemas/IconEnum' - $ref: '#/components/schemas/NullEnum' active: type: boolean description: Inactive fields will no longer be shown. is_public: type: boolean title: Publish answers description: Responses will be shown on session or speaker pages as appropriate. contains_personal_data: type: boolean title: Responses contain personal data description: If a user deletes their account, responses containing personal data will be removed, too. is_visible_to_reviewers: type: boolean title: Show answers to reviewers description: Should responses to this field be shown to reviewers? This is helpful if you want to collect personal information, but use anonymous reviews. required: - question QuestionRequiredEnum: enum: - optional - required - after_deadline type: string description: |- * `optional` - always optional * `required` - always required * `after_deadline` - required after a deadline RemoveSpeakerRequest: type: object properties: user: type: string minLength: 1 required: - user ResourceWriteRequest: type: object description: |- Resources may not be updated, only created and deleted. Use the ``link`` field to provide an external link or the ``resource`` field to provide an uploaded file. properties: resource: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. nullable: true link: type: string format: uri nullable: true maxLength: 400 description: type: string minLength: 1 maxLength: 1000 is_public: type: boolean default: true required: - description Review: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true submission: type: string text: type: string nullable: true title: Review score: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ readOnly: true nullable: true scores: type: array items: $ref: '#/components/schemas/ReviewScore' answers: type: array items: $ref: '#/components/schemas/Answer' readOnly: true user: type: string nullable: true readOnly: true required: - answers - id - score - scores - submission - user ReviewScore: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true category: type: integer value: type: string format: decimal pattern: ^-?\d{0,5}(?:\.\d{0,2})?$ label: type: string nullable: true maxLength: 200 required: - category - id - value ReviewWriteRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: submission: type: string minLength: 1 text: type: string nullable: true title: Review scores: type: array items: type: integer answers: type: array items: type: integer required: - scores - submission Room: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true name: $ref: '#/components/schemas/Multi-language string' description: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: A description for attendees, for example directions. uuid: type: string format: uuid readOnly: true description: The uuid field is equal the the guid field if a guid has been set. Otherwise, it will contain a computed (stable) UUID. guid: type: string format: uuid nullable: true description: Unique identifier (UUID) to help external tools identify the room. capacity: type: integer maximum: 2147483647 minimum: 0 nullable: true description: How many people can fit in the room? position: type: integer maximum: 2147483647 minimum: 0 nullable: true required: - id - name - uuid RoomOrga: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true name: $ref: '#/components/schemas/Multi-language string' description: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: A description for attendees, for example directions. uuid: type: string format: uuid readOnly: true description: The uuid field is equal the the guid field if a guid has been set. Otherwise, it will contain a computed (stable) UUID. guid: type: string format: uuid nullable: true description: Unique identifier (UUID) to help external tools identify the room. capacity: type: integer maximum: 2147483647 minimum: 0 nullable: true description: How many people can fit in the room? position: type: integer maximum: 2147483647 minimum: 0 nullable: true speaker_info: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true title: Speaker Information description: Information relevant for speakers scheduled in this room, for example room size, special directions, available adaptors for video input … availabilities: type: array items: $ref: '#/components/schemas/Availability' required: - id - name - uuid RoomOrgaRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: name: $ref: '#/components/schemas/Multi-language string' description: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: A description for attendees, for example directions. guid: type: string format: uuid nullable: true description: Unique identifier (UUID) to help external tools identify the room. capacity: type: integer maximum: 2147483647 minimum: 0 nullable: true description: How many people can fit in the room? position: type: integer maximum: 2147483647 minimum: 0 nullable: true speaker_info: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true title: Speaker Information description: Information relevant for speakers scheduled in this room, for example room size, special directions, available adaptors for video input … availabilities: type: array items: $ref: '#/components/schemas/AvailabilityRequest' required: - name Root: type: object properties: name: type: string version: type: string api_version: type: string urls: $ref: '#/components/schemas/RootUrls' required: - api_version - name - urls - version RootUrls: type: object properties: events: type: string format: uri required: - events Schedule: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true version: type: string published: type: string format: date-time nullable: true comment: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true description: This text will be shown in the public changelog and the RSS feed. You can use Markdown here. slots: type: array items: type: integer readOnly: true required: - id - slots - version ScheduleList: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true version: type: string published: type: string format: date-time nullable: true required: - id - version ScheduleReleaseRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: version: type: string minLength: 1 comment: type: string nullable: true required: - version Speaker: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: code: type: string readOnly: true name: type: string biography: type: string nullable: true submissions: type: array items: type: string readOnly: true avatar_url: type: string format: uri readOnly: true answers: type: array items: type: integer readOnly: true required: - answers - avatar_url - code - name - submissions SpeakerInformation: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true target_group: $ref: '#/components/schemas/TargetGroupEnum' title: allOf: - $ref: '#/components/schemas/Multi-language string' title: Subject text: allOf: - $ref: '#/components/schemas/Multi-language string' description: You can use Markdown here. resource: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. limit_tracks: type: array items: type: integer title: Limit to tracks title: Limit to tracks description: Leave empty to show this information to all tracks. limit_types: type: array items: type: integer title: Limit to proposal types title: Limit to proposal types description: Leave empty to show this information for all proposal types. required: - id - text - title SpeakerInformationRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: target_group: $ref: '#/components/schemas/TargetGroupEnum' title: allOf: - $ref: '#/components/schemas/Multi-language string' title: Subject text: allOf: - $ref: '#/components/schemas/Multi-language string' description: You can use Markdown here. resource: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. limit_tracks: type: array items: type: integer title: Limit to tracks title: Limit to tracks description: Leave empty to show this information to all tracks. limit_types: type: array items: type: integer title: Limit to proposal types title: Limit to proposal types description: Leave empty to show this information for all proposal types. required: - text - title SpeakerOrga: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: code: type: string readOnly: true name: type: string biography: type: string nullable: true submissions: type: array items: type: string readOnly: true avatar_url: type: string format: uri readOnly: true answers: type: array items: type: integer readOnly: true email: type: string format: email timezone: type: string readOnly: true locale: type: string readOnly: true has_arrived: type: boolean title: The speaker has arrived availabilities: type: array items: $ref: '#/components/schemas/Availability' internal_notes: type: string nullable: true description: Internal notes for other organisers/reviewers. Not visible to the speakers or the public. required: - answers - avatar_url - code - email - locale - name - submissions - timezone SpeakerUpdateRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: name: type: string minLength: 1 biography: type: string nullable: true email: type: string format: email minLength: 1 has_arrived: type: boolean title: The speaker has arrived availabilities: type: array items: $ref: '#/components/schemas/AvailabilityRequest' internal_notes: type: string nullable: true description: Internal notes for other organisers/reviewers. Not visible to the speakers or the public. avatar: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. required: - email - name StateEnum: enum: - submitted - accepted - confirmed - rejected - canceled - withdrawn - draft type: string description: |- * `submitted` - submitted * `accepted` - accepted * `confirmed` - confirmed * `rejected` - rejected * `canceled` - canceled * `withdrawn` - withdrawn * `draft` - draft Submission: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: code: type: string readOnly: true title: type: string title: Proposal title maxLength: 200 speakers: type: array items: type: string readOnly: true submission_type: type: integer track: type: integer nullable: true tags: type: array items: type: integer state: allOf: - $ref: '#/components/schemas/StateEnum' readOnly: true title: Proposal state abstract: type: string nullable: true description: type: string nullable: true duration: type: integer description: Defaults to the submission type’s duration slot_count: type: integer maximum: 2147483647 minimum: 1 description: How many times this session will take place. content_locale: type: string title: Language maxLength: 32 do_not_record: type: boolean title: Don’t record this session. image: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. resources: type: array items: type: integer readOnly: true slots: type: array items: type: integer readOnly: true answers: type: array items: type: integer readOnly: true required: - answers - code - resources - slots - speakers - state - submission_type - title SubmissionOrga: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: code: type: string readOnly: true title: type: string title: Proposal title maxLength: 200 speakers: type: array items: type: string readOnly: true submission_type: type: integer track: type: integer nullable: true tags: type: array items: type: integer state: allOf: - $ref: '#/components/schemas/StateEnum' readOnly: true title: Proposal state abstract: type: string nullable: true description: type: string nullable: true duration: type: integer description: Defaults to the submission type’s duration slot_count: type: integer maximum: 2147483647 minimum: 1 description: How many times this session will take place. content_locale: type: string title: Language maxLength: 32 do_not_record: type: boolean title: Don’t record this session. image: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. resources: type: array items: type: integer readOnly: true slots: type: array items: type: integer readOnly: true answers: type: array items: type: integer readOnly: true pending_state: nullable: true title: Pending proposal state oneOf: - $ref: '#/components/schemas/PendingStateEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' is_featured: type: boolean title: Show this session in public list of featured sessions. notes: type: string nullable: true description: These notes are meant for the organiser and won’t be made public. internal_notes: type: string nullable: true description: Internal notes for other organisers/reviewers. Not visible to the speakers or the public. invitation_token: type: string maxLength: 32 access_code: type: integer nullable: true review_code: type: string nullable: true maxLength: 32 anonymised_data: type: string nullable: true reviews: type: array items: type: integer assigned_reviewers: type: array items: type: string nullable: true is_anonymised: type: boolean readOnly: true median_score: type: number format: double nullable: true readOnly: true mean_score: type: number format: double nullable: true readOnly: true created: type: string format: date-time readOnly: true updated: type: string format: date-time readOnly: true invitations: type: array items: type: integer readOnly: true required: - answers - code - created - invitations - is_anonymised - mean_score - median_score - resources - slots - speakers - state - submission_type - title - updated SubmissionOrgaRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: title: type: string minLength: 1 title: Proposal title maxLength: 200 submission_type: type: integer track: type: integer nullable: true tags: type: array items: type: integer abstract: type: string nullable: true description: type: string nullable: true duration: type: integer description: Defaults to the submission type’s duration slot_count: type: integer maximum: 2147483647 minimum: 1 description: How many times this session will take place. content_locale: type: string minLength: 1 title: Language maxLength: 32 do_not_record: type: boolean title: Don’t record this session. image: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. pending_state: nullable: true title: Pending proposal state oneOf: - $ref: '#/components/schemas/PendingStateEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' is_featured: type: boolean title: Show this session in public list of featured sessions. notes: type: string nullable: true description: These notes are meant for the organiser and won’t be made public. internal_notes: type: string nullable: true description: Internal notes for other organisers/reviewers. Not visible to the speakers or the public. invitation_token: type: string minLength: 1 maxLength: 32 access_code: type: integer nullable: true review_code: type: string nullable: true maxLength: 32 anonymised_data: type: string nullable: true reviews: type: array items: type: integer assigned_reviewers: type: array items: type: string nullable: true minLength: 1 required: - submission_type - title SubmissionRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: title: type: string minLength: 1 title: Proposal title maxLength: 200 submission_type: type: integer track: type: integer nullable: true tags: type: array items: type: integer abstract: type: string nullable: true description: type: string nullable: true duration: type: integer description: Defaults to the submission type’s duration slot_count: type: integer maximum: 2147483647 minimum: 1 description: How many times this session will take place. content_locale: type: string minLength: 1 title: Language maxLength: 32 do_not_record: type: boolean title: Don’t record this session. image: type: str description: When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. required: - submission_type - title SubmissionType: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true name: $ref: '#/components/schemas/Multi-language string' default_duration: type: integer maximum: 2147483647 minimum: 0 description: Default duration in minutes deadline: type: string format: date-time nullable: true description: If you want a different deadline than the global deadline for this session type, enter it here. requires_access_code: type: boolean description: This session type will only be shown to submitters with a matching access code. required: - id - name SubmissionTypeRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: name: $ref: '#/components/schemas/Multi-language string' default_duration: type: integer maximum: 2147483647 minimum: 0 description: Default duration in minutes deadline: type: string format: date-time nullable: true description: If you want a different deadline than the global deadline for this session type, enter it here. requires_access_code: type: boolean description: This session type will only be shown to submitters with a matching access code. required: - name Tag: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true tag: type: string maxLength: 50 description: $ref: '#/components/schemas/Multi-language string' color: type: string title: Colour pattern: '#([0-9A-Fa-f]{3}){1,2}' maxLength: 7 is_public: type: boolean title: Show tag publicly description: Public tags can be selected by submitters in the CfP if you activate the tags field. In a future release of pretalx, public tags may also be shown in the public schedule. required: - color - id - tag TagRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: tag: type: string minLength: 1 maxLength: 50 description: $ref: '#/components/schemas/Multi-language string' color: type: string minLength: 1 title: Colour pattern: '#([0-9A-Fa-f]{3}){1,2}' maxLength: 7 is_public: type: boolean title: Show tag publicly description: Public tags can be selected by submitters in the CfP if you activate the tags field. In a future release of pretalx, public tags may also be shown in the public schedule. required: - color - tag TalkSlot: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true room: type: integer nullable: true description: The room this talk is scheduled in, if any start: type: string format: date-time nullable: true description: When the talk starts, if it is currently scheduled end: type: string format: date-time submission: type: string readOnly: true schedule: type: integer readOnly: true description: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true duration: type: integer description: |- Returns the actual duration in minutes if the talk is scheduled, and the planned duration in minutes otherwise. readOnly: true required: - duration - id - schedule - submission TalkSlotRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: room: type: integer nullable: true description: The room this talk is scheduled in, if any start: type: string format: date-time nullable: true description: When the talk starts, if it is currently scheduled end: type: string format: date-time description: allOf: - $ref: '#/components/schemas/Multi-language string' nullable: true TargetEnum: enum: - submission - speaker - reviewer type: string description: |- * `submission` - per proposal * `speaker` - per speaker * `reviewer` - for reviewers TargetGroupEnum: enum: - submitters - accepted - confirmed type: string description: |- * `submitters` - all * `accepted` - All accepted speakers * `confirmed` - Only confirmed speakers Team: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: id: type: integer readOnly: true name: type: string title: Team name maxLength: 190 members: type: array items: type: string nullable: true invites: type: array items: type: integer all_events: type: boolean title: Apply permissions to all events by this organiser (including newly created ones) limit_events: type: array items: type: string title: Short form description: The slug may only contain letters, numbers, dots and dashes. limit_tracks: type: array items: type: integer can_create_events: type: boolean can_change_teams: type: boolean title: Can change teams and permissions can_change_organiser_settings: type: boolean can_change_event_settings: type: boolean can_change_submissions: type: boolean title: Can work with and change proposals is_reviewer: type: boolean title: Is a reviewer force_hide_speaker_names: type: boolean title: Always hide speaker names description: Normally, anonymisation is configured in the event review settings. This setting will override the event settings and always hide speaker names for this team. required: - id - name TeamInviteCreateRequest: type: object properties: email: type: string format: email minLength: 1 required: - email TeamMemberRemoveRequest: type: object properties: user_code: type: string minLength: 1 required: - user_code TeamRequest: type: object description: |- A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations properties: name: type: string minLength: 1 title: Team name maxLength: 190 members: type: array items: type: string nullable: true minLength: 1 invites: type: array items: type: integer all_events: type: boolean title: Apply permissions to all events by this organiser (including newly created ones) limit_events: type: array items: type: string minLength: 1 title: Short form description: The slug may only contain letters, numbers, dots and dashes. limit_tracks: type: array items: type: integer can_create_events: type: boolean can_change_teams: type: boolean title: Can change teams and permissions can_change_organiser_settings: type: boolean can_change_event_settings: type: boolean can_change_submissions: type: boolean title: Can work with and change proposals is_reviewer: type: boolean title: Is a reviewer force_hide_speaker_names: type: boolean title: Always hide speaker names description: Normally, anonymisation is configured in the event review settings. This setting will override the event settings and always hide speaker names for this team. required: - name TimezoneEnum: enum: [] Track: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true name: $ref: '#/components/schemas/Multi-language string' description: $ref: '#/components/schemas/Multi-language string' color: type: string title: Colour pattern: '#([0-9A-Fa-f]{3}){1,2}' maxLength: 7 position: type: integer maximum: 2147483647 minimum: 0 nullable: true description: The position field is used to determine the order that tracks are displayed in (lowest first). requires_access_code: type: boolean description: This track will only be shown to submitters with a matching access code. required: - color - id - name TrackRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: name: $ref: '#/components/schemas/Multi-language string' description: $ref: '#/components/schemas/Multi-language string' color: type: string minLength: 1 title: Colour pattern: '#([0-9A-Fa-f]{3}){1,2}' maxLength: 7 position: type: integer maximum: 2147483647 minimum: 0 nullable: true description: The position field is used to determine the order that tracks are displayed in (lowest first). requires_access_code: type: boolean description: This track will only be shown to submitters with a matching access code. required: - color - name User: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: code: type: string nullable: true maxLength: 16 name: type: string description: Please enter the name you wish to be displayed publicly. This name will be used for all events you are participating in on this server. maxLength: 120 required: - name V1SubmitterAccessCode: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: id: type: integer readOnly: true code: type: string title: Access code pattern: ^[a-zA-Z0-9]+$ maxLength: 255 track: type: integer nullable: true submission_type: type: integer nullable: true valid_until: type: string format: date-time nullable: true description: You can set or change this date later to invalidate the access code. maximum_uses: type: integer maximum: 2147483647 minimum: 0 nullable: true description: Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. redeemed: type: integer readOnly: true internal_notes: type: string nullable: true description: Internal notes for other organisers/reviewers. Not visible to the speakers or the public. required: - code - id - redeemed V1SubmitterAccessCodeRequest: type: object description: |- This serializer class will behave like the i18nfield serializer, outputting a dict/object for internationalized strings, unless if when it was initialized with an ``override_locale`` (taken from a URL queryparam, usually), in which case the string will be cast to the locale in question – relying on either a view or a middleware to apply the locale manager. properties: code: type: string minLength: 1 title: Access code pattern: ^[a-zA-Z0-9]+$ maxLength: 255 track: type: integer nullable: true submission_type: type: integer nullable: true valid_until: type: string format: date-time nullable: true description: You can set or change this date later to invalidate the access code. maximum_uses: type: integer maximum: 2147483647 minimum: 0 nullable: true description: Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. internal_notes: type: string nullable: true description: Internal notes for other organisers/reviewers. Not visible to the speakers or the public. required: - code VariantEnum: enum: - number - string - text - url - date - datetime - boolean - file - choices - multiple_choice type: string description: |- * `number` - Number * `string` - Text (one-line) * `text` - Multi-line text * `url` - URL * `date` - Date * `datetime` - Date and time * `boolean` - Yes/No * `file` - File upload * `choices` - Choose one from a list * `multiple_choice` - Choose multiple from a list RoleEnum: enum: - submission.new - submission.new.internal - submission.state.accepted - submission.state.rejected - speaker.invite - speaker.invite.existing - question.reminder - draft.reminder - schedule.new type: string description: |- * `submission.new` - Acknowledge proposal submission * `submission.new.internal` - New proposal (organiser notification) * `submission.state.accepted` - Proposal accepted * `submission.state.rejected` - Proposal rejected * `speaker.invite` - Add a speaker to a proposal (new account) * `speaker.invite.existing` - Add a speaker to a proposal (existing account) * `question.reminder` - Custom fields reminder * `draft.reminder` - Draft proposal reminder * `schedule.new` - New schedule published servers: - url: https://pretalx.com externalDocs: url: https://docs.pretalx.org/api/ tags: - name: root description: The API root endpoint provides version information and links to the main API resources. - name: events description: The events endpoints are currently read-only, though we hope to add write actions for event settings eventually. - name: teams description: Access permissions for events are organised in teams within an organiser. This is the only API endpoint that does not use the event setting on your access token, as teams exist outside the event structure. - name: submissions description: Submissions are the central component of pretalx. The submissions available to an authenticated user via the API depend on their permissions within the event, the current review phase, and so on. To a non-authenticated user, only submissions that are a part of the current public schedule will be visible. Note that changing the speakers and state of a submission requires you to use the individual action endpoints rather than a plain update. externalDocs: url: https://docs.pretalx.org/user/sessions/ description: User documentation - name: speakers description: Speakers can currently only updated, not created or deleted, as a speaker refers to a user object, and users can only be deleted by administrators. Organisers will see additional fields in the API, in line with the response to the update actions. - name: schedules description: In pretalx, an event’s schedule is versioned, and each version is a schedule object in the API. In addition to the normal ID based routing, you can use the `latest` shortcut to see the current public schedule, and as organiser, the `wip` shortcut will show the current unpublished working copy. As retrieving the fully expanded endpoint is expensive on the pretalx side, consider using the redirect offered at ``by-version/?latest=1`` to check for a new release. - name: slots description: Every block in a published pretalx schedule is a talk slot. Note that there are talk slots without associated submission (e.g. breaks). Each slot belongs to a schedule version – refer to the schedule endpoint for further documentation. Note that slots cannot be created or deleted via the API – this happens automatically when a submission’s state changes. - name: rooms description: Rooms are part of conference schedules. Only once the conference schedule is public will the rooms API be available to unauthenticated users. Authenticated organisers will see additional fields in the API, in line with the create and update actions. - name: submission-types description: Submission types define the types of proposals that can be submitted to an event, including their default duration. externalDocs: url: https://docs.pretalx.org/user/sessions/#session-types description: User documentation - name: tags description: Tags are currently only used in the organiser backend and not publicly. As such, all tag endpoints require authentication. externalDocs: url: https://docs.pretalx.org/user/sessions/#tags description: User documentation - name: tracks description: Tracks are a way to organise proposals and talks into categories, usually for thematic grouping. externalDocs: url: https://docs.pretalx.org/user/sessions/#tracks description: User documentation - name: questions description: The questions resource represents all fields created by organisers via the flexible “custom fields” model, with the answers available under the ``/answers/`` endpoint. - name: question-options description: 'Question options are used in questions of type ``CHOICE`` and ``MULTIPLE_CHOICE``. ' - name: answers description: 'The answers resource represents all data collected by organisers via the flexible “custom fields” model, which allows for nearly arbitrary data collection from speakers or reviewers. ' - name: reviews description: Reviews can be created, updated and deleted in the API depending on permissions (user, token and team), the current review phase, and so on. As with the other endpoints, this endpoint is not available to users/tokens with only reviewer permissions while an anonymised review phase is active. Otherwise, the reviews available depend on the current review phase and the user’s access permissions, so e.g. only the user’s own reviews may be available. - name: mail-templates description: Mail templates are used to define standardized mail formats for standard situations, like acceptance or rejection mails, or to add custom email templates for your own use. Please note that the role attribute cannot be changed. - name: speaker-information description: Speaker information can be used to provide important information to speakers, either to all speakers or only to accepted or confirmed speakers. - name: access-codes description: Access codes can be used to grant access to restricted tracks, or to allow for proposals to be submitted past the public deadline. - name: file-uploads description: Upload files for further use in other resources of the pretalx API. externalDocs: url: https://docs.pretalx.org/api/fundamentals/#file-uploads description: API documentation