openapi: 3.1.0
info:
  title: Good Grants API
  version: '2.3'
  description: |
    The Good Grants API enables you to programmatically manage grant-making programs, funding cycles, and application workflows.

    Use this API to:
    - Create and manage grant applications and submissions
    - Automate review workflows and scoring assignments
    - Track grant payments and fund allocations
    - Generate compliance reports and analytics
    - Integrate with external systems via webhooks

    All API requests require authentication using an API key provided in the `X-Api-Key` header.
  license:
    name: Creative Force Client Subscription Terms
    url: https://creativeforce.team/agreement/
servers:
  - url: https://api.us.cr4ce.com
    description: US regional endpoint
  - url: https://api.eu.cr4ce.com
    description: EU regional endpoint
  - url: https://api.au.cr4ce.com
    description: Australasia regional endpoint
  - url: https://api.ca.cr4ce.com
    description: Canada regional endpoint
  - url: https://api.hk.cr4ce.com
    description: Hong Kong regional endpoint
security:
  - ApiKeyAuth: []
tags:
  - name: Account
    description: |-
      Use this operation to retrieve information about your organization account.
      The account resource provides metadata about the tenant associated with your API key.

      Note: Account information is read-only and contains organization-level settings and identifiers.
  - name: Action tasks
    description: |-
      Use these operations to manage individual review and evaluation activities.
      Action tasks represent specific actions that reviewers or administrators need to complete during the evaluation process.

      Tasks track timestamps, decisions, and reviewer associations.
      Action tasks integrate with the broader review workflow and status tracking.
  - name: Allocation payments
    description: |-
      Use these operations to manage individual payments made against grant allocations.
      Allocation payments represent installments or disbursements of awarded funds.

      Payments track scheduling, status (pending, paid, cancelled), and amounts.
      Comments can be added to payments for grantee communication and record-keeping purposes.
  - name: Allocations
    description: |-
      Use these operations to manage grant allocations awarded to applications.
      An allocation represents the award of funds from a budget (fund) to an application or applicant.

      Allocations track the total grant amount, currency, and outstanding balance.
      Multiple payments can be made against a single allocation to facilitate installment-based grants or milestone payments.
  - name: Applications (realtime)
    description: |-
      Use these operations to perform granular updates on applications without replacing the entire resource.
      These endpoints enable real-time updates to specific application properties such as:
      title, category assignment, chapter assignment, individual field values, document uploads, tags, and recusal status.

      These operations are optimized for interactive applications that need to update grants incrementally.
  - name: Applications
    description: |-
      Use these operations to manage grant applications submitted to your funding programs.
      Applications are the core entity that flows through the entire lifecycle from submission to review to grant award.

      Applications can contain custom form fields, supporting documents, contributors, and be organized by categories and chapters.
      Each application progresses through various statuses including draft, submitted, under review, and approved stages.
  - name: Assignments
    description: |-
      Use these operations to manage review assignments for evaluating grant applications.
      Assignments connect reviewers (or roles) with applications and scoring rubrics to facilitate the evaluation process.

      Assignments can be created individually or in bulk (asynchronous operations).
      Each assignment tracks completion status, scores, and panel membership.
      Assignments enable structured review workflows with configurable scoring criteria.
  - name: Attachments
    description: |-
      Use these operations to manage files uploaded to applications through attachment tabs.
      Attachments are distinct from field-based file uploads and allow for supplementary materials such as letters of support or compliance documents.

      Each attachment can have its own metadata and custom fields for categorization.
      Attachments remain associated with their application throughout the application lifecycle.
  - name: Categories
    description: |-
      Use these operations to manage funding categories or program areas.
      Categories organize applications into logical groups and can be hierarchical with parent-child relationships.

      Each category can have its own application form, chapter availability, submission limits, and custom labels.
      Categories support translated names and descriptions for multi-language grant programs.
  - name: Chapters
    description: |-
      Use these operations to manage geographic or organizational divisions within your grant programs.
      Chapters enable you to run regional funding programs, manage local grants, or organize by funding priorities.

      Applications can be assigned to chapters, and chapters can have their own administrators and configurations.
      Chapters support translated names and custom images for branding.
  - name: Contributors
    description: |-
      Use these operations to manage additional people associated with applications beyond the primary applicant.
      Contributors represent project team members, fiscal sponsors, or partners on a grant proposal.

      Each contributor can have their own custom fields and data collection requirements.
      Contributors are organized by tabs and can be managed independently from the main application.
  - name: Documents
    description: |-
      Use these operations to generate and retrieve PDF documents and data exports.
      Documents can be created based on application data, grantee data, compliance reports, or other program information.

      Document generation is asynchronous - after creating a document, poll the endpoint to check when generation is complete.
      Generated documents are available for download and can be associated with specific applicants or applications.
  - name: Fields
    description: |-
      Use these operations to manage custom form fields used to collect data throughout your grant programs.
      Fields can be attached to applications, users, contributors, attachments, and other resources.

      Supported field types include text, textarea, select, multi-select, date, file upload, table, and more.
      Fields support conditional logic, validation rules, and different protection levels.
      Note: Field deletion and updates are managed through the Good Grants interface.
  - name: Files
    description: |-
      Use these operations to retrieve information about uploaded files.
      Files provide metadata and download links for documents uploaded throughout the system.

      Access files using their secure token identifiers.
      Note: Files are read-only via this endpoint - file uploads are handled through resource-specific upload endpoints.
  - name: Forms
    description: |-
      Use these operations to retrieve application form structures and configurations.
      Forms define the data collection structure for grant applications within categories.

      Each form contains custom fields organized into tabs, along with content blocks and call-to-action elements.
      Forms support various types including application forms, review forms, and nomination forms.
      Note: Forms are read-only via the API and must be configured through the Good Grants interface.
  - name: Funds
    description: |-
      Use these operations to manage budget sources for allocations and grants.
      Funds represent pools of money available for distribution, such as "Innovation Fund 2026" or "Community Development Budget".

      Each fund tracks its budget, currency, and can have multiple allocations drawn against it.
      Funds enable financial tracking and reporting across your grant-making programs.
  - name: Grant reports
    description: |-
      Use these operations to manage grant reports and post-award compliance documentation.
      Grant reports track progress reporting requirements and outcomes for awarded grants.

      Reports capture applicant information, application details, custom form fields, and status tracking.
  - name: Grant statuses
    description: |-
      Use these operations to retrieve custom grant lifecycle statuses.
      Grant statuses provide additional status tracking beyond standard application review statuses.

      These are used to track stages like "Eligibility Review", "Compliance Check", "Funding Approved", "Grant Agreement Signed".
      Note: Grant statuses are read-only via the API and must be configured through the Good Grants interface.
  - name: Leaderboard
    description: |-
      Use these operations to retrieve ranking results and scores for applications.
      The leaderboard shows how applications rank based on score sets, with support for filtering by category, chapter, and tags.

      Results can be filtered to show specific subsets of the funding program.
      Note: The leaderboard is read-only and reflects calculated results from the review process.
  - name: Rounds
    description: |-
      Use these operations to retrieve round information for your grant programs.
      Rounds represent phases within a funding cycle, such as application rounds, review rounds, or decision rounds.

      Each round has specific start and end dates, associated forms, and can be scoped to specific chapters.
      Note: Rounds are read-only via the API and must be managed through the Good Grants interface.
  - name: Score sets
    description: |-
      Use these operations to retrieve scoring rubrics and evaluation criteria.
      Score sets define the questions, scoring scales, and calculation methods used to evaluate grant applications.

      Score sets can operate in different modes including scoring, ranking, and decision-making.
      Note: Score sets are read-only via the API and must be configured through the Good Grants interface.
  - name: Seasons
    description: |-
      Use these operations to retrieve information about funding cycles (seasons).
      A season represents a time-bound grant program instance, such as "2026 Community Grants" or "Q1 2026 Innovation Fund".

      Seasons contain forms, rounds, categories, and chapters.
      Seasons progress through statuses: draft, active, archived, and destroyed.
      Note: Seasons are read-only via the API and must be managed through the Good Grants interface.
  - name: Taxes
    description: |-
      Use these operations to retrieve tax configurations for financial transactions.
      Tax settings define how taxes are calculated and applied to orders and payments.

      Note: Tax configurations are read-only via the API and must be managed through the Good Grants interface.
  - name: Users
    description: |-
      Use these operations to manage user accounts in your grant-making organization.
      Users represent people who interact with your programs, including applicants, reviewers, administrators, and other roles.

      Users can be assigned roles, have custom profile fields, receive notifications, and authenticate via API tokens.
      Each user has a unique slug identifier and can participate across multiple funding cycles.
  - name: Webhooks
    description: |-
      Use these operations to manage webhook subscriptions for real-time event notifications.
      Webhooks notify your external systems when events occur in Good Grants, such as application submissions, status changes, or payment completions.

      Available events include: application created, application submitted, application status changed, payment success, user confirmed, and 20+ more.
      Configure webhooks to send HTTP POST requests to your specified URLs with event payloads.
paths:
  /account:
    get:
      summary: Get account
      operationId: GetAccountV23
      tags:
        - Account
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Account retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
            application/xml:
              schema:
                $ref: '#/components/schemas/Account'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the account associated with the API key.
  /action-task:
    post:
      summary: Create action task
      operationId: PostReviewTaskV23
      tags:
        - Action tasks
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Action task created.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewTask'
            application/xml:
              schema:
                $ref: '#/components/schemas/ReviewTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      requestBody:
        $ref: '#/components/requestBodies/ReviewTaskCreate'
      description: Create an action task.
    get:
      summary: List action tasks
      operationId: GetReviewTaskCollectionV23
      tags:
        - Action tasks
      parameters:
        - $ref: '#/components/parameters/reviewTaskActionAtFilter'
        - $ref: '#/components/parameters/reviewTaskCreatedAtFilter'
        - $ref: '#/components/parameters/reviewTaskUpdatedAtFilter'
        - $ref: '#/components/parameters/decisionFilter'
        - $ref: '#/components/parameters/reviewStageFilter'
        - $ref: '#/components/parameters/reviewerFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of action tasks.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewTaskList'
            application/xml:
              schema:
                $ref: '#/components/schemas/ReviewTaskList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List action tasks.
  /action-task/{token}:
    parameters:
      - $ref: '#/components/parameters/token'
    get:
      summary: Get action task
      operationId: GetReviewTaskV23
      tags:
        - Action tasks
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Action task retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewTask'
            application/xml:
              schema:
                $ref: '#/components/schemas/ReviewTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the action task identified by the specified token.
    delete:
      summary: Delete action task
      operationId: DeleteReviewTaskV23
      tags:
        - Action tasks
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the action task identified by the specified token.
  /allocation-payment:
    get:
      summary: List allocation payments
      operationId: GetAllocationPaymentCollectionV23
      tags:
        - Allocation payments
      parameters:
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/allocationPaymentOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of allocation payments.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationPaymentList'
            application/xml:
              schema:
                $ref: '#/components/schemas/AllocationPaymentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List allocation payments.
    post:
      summary: Create allocation payment
      operationId: PostAllocationPaymentV23
      tags:
        - Allocation payments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentCreate'
      responses:
        '201':
          description: Allocation payment created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationPayment'
            application/xml:
              schema:
                $ref: '#/components/schemas/AllocationPayment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create an allocation payment.
  /allocation-payment/{allocation_payment_slug}:
    parameters:
      - $ref: '#/components/parameters/allocationPaymentSlug'
    get:
      summary: Get allocation payment
      operationId: GetAllocationPaymentV23
      tags:
        - Allocation payments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Allocation payment retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationPayment'
            application/xml:
              schema:
                $ref: '#/components/schemas/AllocationPayment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the allocation payment identified by the specified slug.
    put:
      summary: Update allocation payment
      operationId: PutAllocationPaymentV23
      tags:
        - Allocation payments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentUpdate'
      responses:
        '200':
          description: Allocation payment updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationPayment'
            application/xml:
              schema:
                $ref: '#/components/schemas/AllocationPayment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the allocation payment identified by the specified slug.
    delete:
      summary: Delete allocation payment
      operationId: DeleteAllocationPaymentV23
      tags:
        - Allocation payments
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the allocation payment identified by the specified slug.
  /allocation-payment/comment:
    post:
      summary: Comment on allocation payment
      operationId: PostAllocationPaymentCommentV23
      tags:
        - Allocation payments
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentComment'
      responses:
        '200':
          description: Comment added to the allocation payment.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationPaymentCommentResult'
            application/xml:
              schema:
                $ref: '#/components/schemas/AllocationPaymentCommentResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Add a comment to the allocation payment identified by the slug in the request body.
  /allocation:
    get:
      summary: List allocations
      operationId: GetAllocationCollectionV23
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/allocationOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of allocations.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationList'
            application/xml:
              schema:
                $ref: '#/components/schemas/AllocationList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List allocations.
    post:
      summary: Create allocation
      operationId: PostAllocationV23
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/AllocationCreate'
      responses:
        '201':
          description: Allocation created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
            application/xml:
              schema:
                $ref: '#/components/schemas/Allocation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create an allocation.
  /allocation/{allocation_slug}:
    parameters:
      - $ref: '#/components/parameters/allocationSlug'
    get:
      summary: Get allocation
      operationId: GetAllocationV23
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Allocation retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
            application/xml:
              schema:
                $ref: '#/components/schemas/Allocation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the allocation identified by the specified slug.
    put:
      summary: Update allocation
      operationId: PutAllocationV23
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/AllocationUpdate'
      responses:
        '200':
          description: Allocation updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
            application/xml:
              schema:
                $ref: '#/components/schemas/Allocation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the allocation identified by the specified slug.
    delete:
      summary: Delete allocation
      operationId: DeleteAllocationV23
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the allocation identified by the specified slug.
  /application:
    get:
      summary: List applications
      operationId: GetEntryCollectionV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/entryEntrantFilter'
        - $ref: '#/components/parameters/entryModerationFilter'
        - $ref: '#/components/parameters/entryPaymentStatusFilter'
        - $ref: '#/components/parameters/entryPriceFilter'
        - $ref: '#/components/parameters/entryStatusFilter'
        - $ref: '#/components/parameters/entryTitleFilter'
        - $ref: '#/components/parameters/entryUpdatedAtFilter'
        - $ref: '#/components/parameters/categoryFilter'
        - $ref: '#/components/parameters/chapterFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/archivedFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/entryOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of applications.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntryList'
            application/xml:
              schema:
                $ref: '#/components/schemas/EntryList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List applications.
    post:
      summary: Create application
      operationId: PostEntryV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '201':
          description: Application created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      requestBody:
        $ref: '#/components/requestBodies/EntryCreate'
      description: Create an application.
  /application/{application_slug}:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    get:
      summary: Get application
      operationId: GetEntryV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Application retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the application identified by the specified slug.
    put:
      summary: Update application
      operationId: PutEntryV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/EntryUpdate'
      responses:
        '200':
          description: Application updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the application identified by the specified slug.
      x-mint:
        content: |-
          <Note>
          Only the properties you include in the request body are updated; omitted properties keep their current values.
          </Note>

          <Note>
          Within `entry_fields`, only the field slugs you include are updated, and any field slug that does not exist on the form for the application is ignored. For most field types the value you supply replaces the stored value. Table fields are merged cell by cell: include only the cells you want to change, and send a cell with an empty value to clear it.
          </Note>
    delete:
      summary: Delete application
      operationId: DeleteEntryV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the application identified by the specified slug. The application is moved to the trash and can be restored; it is not permanently removed.
  /application/{application_slug}/tag/{tags}:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    put:
      summary: Tag application
      operationId: PutEntryTagV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/entryTagsToAdd'
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: Application tagged.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Add tags to the application identified by the specified slug.
    delete:
      summary: Untag application
      operationId: DeleteEntryTagV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/entryTagsToRemove'
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: Application untagged.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Remove tags from the application identified by the specified slug.
      x-mint:
        content: |-
          <Note>
          Removing a tag that is not currently applied to the application has no effect and still returns `201` with the current tags for the application. Inspect `tags` in the response to confirm the result.
          </Note>
  /application/{application_slug}/upload/{field_slug}:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
      - $ref: '#/components/parameters/fieldSlug'
    post:
      summary: Upload application file
      operationId: PostEntryUploadV23
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: Application file uploaded.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResult'
            application/xml:
              schema:
                $ref: '#/components/schemas/UploadResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Upload a file to the specified field for the application identified by the specified slug.
      requestBody:
        $ref: '#/components/requestBodies/FileUpload'
      x-mint:
        content: |-
          Use this operation to upload a file to a file field on the application.

          <Warning>
          The uploaded file is validated and stored before the response is returned; the file itself is processed shortly after. A `GET` on the returned `Location` immediately after the `201` may briefly return a response with a `null` body until processing is complete.
          </Warning>
  /application/{application_slug}/update-category:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    put:
      summary: Update application category
      operationId: PutEntryUpdateCategoryV23
      tags:
        - Applications (realtime)
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/EntryCategoryUpdate'
      responses:
        '200':
          description: Application category updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the category for the application identified by the specified slug.
  /application/{application_slug}/update-chapter:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    put:
      summary: Update application chapter
      operationId: PutEntryUpdateChapterV23
      tags:
        - Applications (realtime)
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/EntryChapterUpdate'
      responses:
        '200':
          description: Application chapter updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the chapter for the application identified by the specified slug.
  /application/{application_slug}/update-field/{field_slug}:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
      - $ref: '#/components/parameters/fieldSlug'
    put:
      summary: Update application field
      operationId: PutEntryUpdateFieldV23
      tags:
        - Applications (realtime)
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/EntryFieldUpdate'
      responses:
        '200':
          description: Application field updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update a field for the application identified by the specified slug.
  /application/{application_slug}/update-title:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    put:
      summary: Update application title
      operationId: PutEntryUpdateTitleV23
      tags:
        - Applications (realtime)
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/EntryTitleUpdate'
      responses:
        '200':
          description: Application title updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entry'
            application/xml:
              schema:
                $ref: '#/components/schemas/Entry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the title for the application identified by the specified slug.
  /attachment/{token}/update-field/{field_slug}:
    parameters:
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/fieldSlug'
    put:
      summary: Update attachment field
      operationId: PutAttachmentUpdateFieldV23
      tags:
        - Applications (realtime)
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: Attachment field updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
            application/xml:
              schema:
                $ref: '#/components/schemas/Attachment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update an attachment field for the attachment identified by the specified token.
      requestBody:
        $ref: '#/components/requestBodies/AttachmentFieldUpdate'
  /contributor/{contributor_slug}/update-field/{field_slug}:
    parameters:
      - $ref: '#/components/parameters/contributorSlug'
      - $ref: '#/components/parameters/fieldSlug'
    put:
      summary: Update contributor field
      operationId: PutContributorUpdateFieldV23
      tags:
        - Applications (realtime)
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: Contributor field updated.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contributor'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contributor'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update a contributor field for the contributor identified by the specified slug.
      requestBody:
        $ref: '#/components/requestBodies/ContributorFieldUpdate'
  /assignment:
    get:
      summary: List assignments
      operationId: GetAssignmentCollectionV23
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/assignmentSlugFilter'
        - $ref: '#/components/parameters/assignmentStatusFilter'
        - $ref: '#/components/parameters/categoryFilter'
        - $ref: '#/components/parameters/chapterFilter'
        - $ref: '#/components/parameters/judgeFilter'
        - $ref: '#/components/parameters/methodFilter'
        - $ref: '#/components/parameters/panelFilter'
        - $ref: '#/components/parameters/scoreSetFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/stateFilter'
        - $ref: '#/components/parameters/tagFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/assignmentOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of assignments.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentList'
            application/xml:
              schema:
                $ref: '#/components/schemas/AssignmentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List assignments that match the specified filters.
    post:
      summary: Create assignment
      operationId: PostAssignmentV23
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '202':
          description: |-
            Assignment creation accepted.

            The response body is empty. Created assignments become available via `GET /assignment` once processing completes.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a new assignment.
      requestBody:
        $ref: '#/components/requestBodies/AssignmentCreate'
  /assignment/{assignment_slug}:
    parameters:
      - $ref: '#/components/parameters/assignmentSlug'
    get:
      summary: Get assignment
      operationId: GetAssignmentV23
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Assignment retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assignment'
            application/xml:
              schema:
                $ref: '#/components/schemas/Assignment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the assignment identified by the specified slug.
    delete:
      summary: Delete assignment
      operationId: DeleteAssignmentV23
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the assignment identified by the specified slug.
      x-mint:
        content: |-
          <Note>
          Only assignments with `method` of `manual` or `random` can be deleted. Other methods (`automatic`, `stray`, `recused`) return `422`.
          </Note>
  /application/{application_slug}/recuse:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    put:
      summary: Recuse assignment
      operationId: PutEntryRecuseV23
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: Assignment recused.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Recuse a reviewer from the assignment for the specified application.
      requestBody:
        $ref: '#/components/requestBodies/EntryAssignmentRecusal'
  /application/{application_slug}/unrecuse:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
    put:
      summary: Unrecuse assignment
      operationId: PutEntryUnrecuseV23
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: Assignment recusal removed.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Remove a reviewer recusal from the assignment for the specified application.
      requestBody:
        $ref: '#/components/requestBodies/EntryAssignmentRecusal'
  /attachment:
    get:
      summary: List attachments
      operationId: GetAttachmentCollectionV23
      tags:
        - Attachments
      parameters:
        - $ref: '#/components/parameters/categoryFilter'
        - $ref: '#/components/parameters/chapterFilter'
        - $ref: '#/components/parameters/entryFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/tabFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/attachmentOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of attachments.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentList'
            application/xml:
              schema:
                $ref: '#/components/schemas/AttachmentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List attachments.
  /attachment/{token}:
    parameters:
      - $ref: '#/components/parameters/token'
    get:
      summary: Get attachment
      operationId: GetAttachmentV23
      tags:
        - Attachments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Attachment retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
            application/xml:
              schema:
                $ref: '#/components/schemas/Attachment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the attachment identified by the specified token. Unknown tokens return `400 Bad Request`.
    put:
      summary: Update attachment
      operationId: PutAttachmentV23
      tags:
        - Attachments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Attachment updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
            application/xml:
              schema:
                $ref: '#/components/schemas/Attachment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the attachment identified by the specified token.
      x-mint:
        content: |-
          <Note>
          Every property in the request body is optional; only properties that are supplied are written. Properties that are omitted retain their current value. On success the response carries the post-update attachment representation.
          </Note>

          <Note>
          Attachment fields are linked to the attachment and are distinct from form fields. If the attachment has no attachment fields, you can omit `attachment_fields` from the request body.
          </Note>
      requestBody:
        $ref: '#/components/requestBodies/AttachmentUpdate'
    delete:
      summary: Delete attachment
      operationId: DeleteAttachmentV23
      tags:
        - Attachments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the attachment identified by the specified token. Unknown tokens return `400 Bad Request`.
  /application/{application_slug}/attachment/{tab_slug}:
    parameters:
      - $ref: '#/components/parameters/entrySlug'
      - $ref: '#/components/parameters/tabSlug'
    post:
      summary: Create attachment
      operationId: PostEntryAttachmentV23
      tags:
        - Attachments
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '201':
          description: Attachment created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentCreateResult'
            application/xml:
              schema:
                $ref: '#/components/schemas/AttachmentCreateResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create an attachment on the specified application under the specified tab.
      x-mint:
        content: |-
          <Note>
          The tab must be of type `Attachments`; tabs of other types are rejected.
          </Note>

          <Note>
          Attachment fields are linked to the attachment and are distinct from form fields. If the attachment has no attachment fields, you can omit `attachment_fields` from the request body.
          </Note>

          <Warning>
          The uploaded file is validated and stored before the response is returned; the attachment itself is finalized shortly after. A `GET` on the returned `Location` immediately after the `201` may briefly return a response with a `null` body until finalization is complete.
          </Warning>
      requestBody:
        $ref: '#/components/requestBodies/AttachmentUpload'
  /category:
    get:
      summary: List categories
      operationId: GetCategoryCollectionV23
      tags:
        - Categories
      parameters:
        - $ref: '#/components/parameters/activeInactiveStatusFilter'
        - $ref: '#/components/parameters/chapterFilter'
        - $ref: '#/components/parameters/formFilter'
        - $ref: '#/components/parameters/parentCategoryFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/categoryOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of categories.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryList'
            application/xml:
              schema:
                $ref: '#/components/schemas/CategoryList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List categories.
    post:
      summary: Create category
      operationId: PostCategoryV23
      tags:
        - Categories
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/CategoryCreate'
      responses:
        '201':
          description: Category created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
            application/xml:
              schema:
                $ref: '#/components/schemas/Category'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a category.
  /category/{category_slug}:
    parameters:
      - $ref: '#/components/parameters/categorySlug'
    get:
      summary: Get category
      operationId: GetCategoryV23
      tags:
        - Categories
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Category retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
            application/xml:
              schema:
                $ref: '#/components/schemas/Category'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the category identified by the specified slug.
      x-mint:
        content: |-
          The response includes all category fields.
          Images include a download link.
    put:
      summary: Update category
      operationId: PutCategoryV23
      tags:
        - Categories
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/CategoryUpdate'
      responses:
        '200':
          description: Category updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
            application/xml:
              schema:
                $ref: '#/components/schemas/Category'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the category identified by the specified slug.
    delete:
      summary: Delete category
      operationId: DeleteCategoryV23
      tags:
        - Categories
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the category identified by the specified slug.
      x-mint:
        content: Any child categories are not deleted. They move up one level in the hierarchy to take the place of the deleted category.
  /category/{category_slug}/upload:
    parameters:
      - $ref: '#/components/parameters/categorySlug'
    post:
      summary: Upload category file
      operationId: PostCategoryUploadV23
      tags:
        - Categories
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: Category file uploaded.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResult'
            application/xml:
              schema:
                $ref: '#/components/schemas/UploadResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Upload a file for the category identified by the specified slug.
      requestBody:
        $ref: '#/components/requestBodies/CategoryUpload'
      x-mint:
        content: |-
          Use this operation to upload a category image.

          <Warning>
          The uploaded file is validated and stored before the response is returned; the image itself is processed shortly after. A `GET` on the returned `Location` immediately after the `201` may briefly return a response with a `null` body until processing is complete.
          </Warning>
  /chapter:
    get:
      summary: List chapters
      operationId: GetChapterCollectionV23
      tags:
        - Chapters
      parameters:
        - $ref: '#/components/parameters/activeInactiveStatusFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/chapterOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of chapters.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChapterList'
            application/xml:
              schema:
                $ref: '#/components/schemas/ChapterList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List chapters.
    post:
      summary: Create chapter
      operationId: PostChapterV23
      tags:
        - Chapters
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/ChapterCreate'
      responses:
        '201':
          description: Chapter created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Chapter'
            application/xml:
              schema:
                $ref: '#/components/schemas/Chapter'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a chapter.
  /chapter/{chapter_slug}:
    parameters:
      - $ref: '#/components/parameters/chapterSlug'
    get:
      summary: Get chapter
      operationId: GetChapterV23
      tags:
        - Chapters
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Chapter retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Chapter'
            application/xml:
              schema:
                $ref: '#/components/schemas/Chapter'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the chapter identified by the specified slug.
    put:
      summary: Update chapter
      operationId: PutChapterV23
      tags:
        - Chapters
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/ChapterUpdate'
      responses:
        '200':
          description: Chapter updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Chapter'
            application/xml:
              schema:
                $ref: '#/components/schemas/Chapter'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the chapter identified by the specified slug.
    delete:
      summary: Delete chapter
      operationId: DeleteChapterV23
      tags:
        - Chapters
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the chapter identified by the specified slug.
  /chapter/{chapter_slug}/upload:
    parameters:
      - $ref: '#/components/parameters/chapterSlug'
    post:
      summary: Upload chapter file
      operationId: PostChapterUploadV23
      tags:
        - Chapters
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: Chapter file uploaded.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResult'
            application/xml:
              schema:
                $ref: '#/components/schemas/UploadResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Upload a file for the chapter identified by the specified slug.
      requestBody:
        $ref: '#/components/requestBodies/ChapterUpload'
      x-mint:
        content: |-
          Use this operation to upload a chapter image.

          <Warning>
          The uploaded file is validated and stored before the response is returned; the image itself is processed shortly after. A `GET` on the returned `Location` immediately after the `201` may briefly return a response with a `null` body until processing is complete.
          </Warning>
  /contributor:
    get:
      summary: List contributors
      operationId: GetContributorCollectionV23
      tags:
        - Contributors
      parameters:
        - $ref: '#/components/parameters/entryFilter'
        - $ref: '#/components/parameters/tabFilter'
        - $ref: '#/components/parameters/entryStatusFilter'
        - $ref: '#/components/parameters/entryPaymentStatusFilter'
        - $ref: '#/components/parameters/entryModerationFilter'
        - $ref: '#/components/parameters/entryReviewStatusFilter'
        - $ref: '#/components/parameters/tagFilter'
        - $ref: '#/components/parameters/categoryFilter'
        - $ref: '#/components/parameters/chapterFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/contributorOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of contributors.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributorList'
            application/xml:
              schema:
                $ref: '#/components/schemas/ContributorList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List contributors.
    post:
      summary: Create contributor
      operationId: PostContributorV23
      tags:
        - Contributors
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/ContributorCreate'
      responses:
        '201':
          description: Contributor created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contributor'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contributor'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a contributor.
  /contributor/{contributor_slug}:
    parameters:
      - $ref: '#/components/parameters/contributorSlug'
    get:
      summary: Get contributor
      operationId: GetContributorV23
      tags:
        - Contributors
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Contributor retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contributor'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contributor'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the contributor identified by the specified slug.
    put:
      summary: Update contributor
      operationId: PutContributorV23
      tags:
        - Contributors
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/ContributorUpdate'
      responses:
        '200':
          description: Contributor updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contributor'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contributor'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the contributor identified by the specified slug.
    delete:
      summary: Delete contributor
      operationId: DeleteContributorV23
      tags:
        - Contributors
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the contributor identified by the specified slug.
  /document:
    get:
      summary: List documents
      operationId: GetDocumentCollectionV23
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentEntrantFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/documentOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of documents.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentList'
            application/xml:
              schema:
                $ref: '#/components/schemas/DocumentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List documents.
    post:
      summary: Create document
      operationId: PostDocumentV23
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/DocumentCreate'
      responses:
        '202':
          description: Document creation accepted.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a document.
      x-mint:
        content: |-
          Documents are generated asynchronously. A successful request returns `202 Accepted` with an empty body and does not include a `Location` header.

          The generated document does not exist yet when the response is returned. Poll `GET /document` to retrieve it once generation completes.
  /document/{document_slug}:
    get:
      summary: Get document
      operationId: GetDocumentV23
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Document retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
            application/xml:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the document identified by the specified slug.
    delete:
      summary: Delete document
      operationId: DeleteDocumentV23
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the document identified by the specified slug.
  /field:
    get:
      summary: List fields
      operationId: GetFieldCollectionV23
      tags:
        - Fields
      parameters:
        - $ref: '#/components/parameters/fieldConditionalFilter'
        - $ref: '#/components/parameters/fieldProtectionFilter'
        - $ref: '#/components/parameters/fieldResourceFilter'
        - $ref: '#/components/parameters/fieldTypeFilter'
        - $ref: '#/components/parameters/categoryFilter'
        - $ref: '#/components/parameters/formFilter'
        - $ref: '#/components/parameters/tabFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/fieldOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of fields.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldList'
            application/xml:
              schema:
                $ref: '#/components/schemas/FieldList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List fields.
    post:
      summary: Create field
      operationId: PostFieldV23
      tags:
        - Fields
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/FieldCreate'
      responses:
        '201':
          description: Field created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Field'
            application/xml:
              schema:
                $ref: '#/components/schemas/Field'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a field.
      x-mint:
        content: |-
          <Note>
          You cannot create `formula` or `ai` field types through the API.
          </Note>
  /file/{token}:
    parameters:
      - $ref: '#/components/parameters/token'
    get:
      summary: Get file information
      operationId: GetFileV23
      tags:
        - Files
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: File information retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
            application/xml:
              schema:
                $ref: '#/components/schemas/File'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get file information for the file identified by the specified token. Unknown tokens return `400 Bad Request`.
  /form:
    get:
      summary: List forms
      operationId: GetFormCollectionV23
      tags:
        - Forms
      parameters:
        - $ref: '#/components/parameters/formTypeFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/archivedFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/formOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of forms.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormList'
            application/xml:
              schema:
                $ref: '#/components/schemas/FormList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List forms.
  /form/{form_slug}:
    get:
      summary: Get form
      operationId: GetFormV23
      tags:
        - Forms
      parameters:
        - $ref: '#/components/parameters/formSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Form retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
            application/xml:
              schema:
                $ref: '#/components/schemas/Form'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the form identified by the specified slug.
  /fund:
    get:
      summary: List funds
      operationId: GetFundCollectionV23
      tags:
        - Funds
      parameters:
        - $ref: '#/components/parameters/fundSlugFilter'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/fundOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of funds.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundList'
            application/xml:
              schema:
                $ref: '#/components/schemas/FundList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List funds.
    post:
      summary: Create fund
      operationId: PostFundV23
      tags:
        - Funds
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/FundCreate'
      responses:
        '201':
          description: Fund created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fund'
            application/xml:
              schema:
                $ref: '#/components/schemas/Fund'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a fund.
  /fund/{fund_slug}:
    parameters:
      - $ref: '#/components/parameters/fundSlug'
    get:
      summary: Get fund
      operationId: GetFundV23
      tags:
        - Funds
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Fund retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fund'
            application/xml:
              schema:
                $ref: '#/components/schemas/Fund'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the fund identified by the specified slug.
    put:
      summary: Update fund
      operationId: PutFundV23
      tags:
        - Funds
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/FundUpdate'
      responses:
        '200':
          description: Fund updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fund'
            application/xml:
              schema:
                $ref: '#/components/schemas/Fund'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the fund identified by the specified slug.
    delete:
      summary: Delete fund
      operationId: DeleteFundV23
      tags:
        - Funds
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the fund identified by the specified slug.
  /grant-status:
    get:
      summary: List grant statuses
      operationId: GetGrantStatusCollectionV23
      tags:
        - Grant statuses
      parameters:
        - $ref: '#/components/parameters/grantStatusSlugFilter'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/grantStatusOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of grant statuses.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantStatusList'
            application/xml:
              schema:
                $ref: '#/components/schemas/GrantStatusList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List grant statuses.
  /grant-status/{grant_status_slug}:
    get:
      summary: Get grant status
      operationId: GetGrantStatusV23
      tags:
        - Grant statuses
      parameters:
        - $ref: '#/components/parameters/grantStatusSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Grant status retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantStatus'
            application/xml:
              schema:
                $ref: '#/components/schemas/GrantStatus'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the grant status identified by the specified slug.
  /leaderboard:
    get:
      summary: List leaderboard results
      operationId: GetLeaderboardCollectionV23
      tags:
        - Leaderboard
      parameters:
        - $ref: '#/components/parameters/leaderboardScoreSetFilter'
        - $ref: '#/components/parameters/categoryFilter'
        - $ref: '#/components/parameters/chapterFilter'
        - $ref: '#/components/parameters/entryFilter'
        - $ref: '#/components/parameters/tagFilter'
        - $ref: '#/components/parameters/archivedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/leaderboardOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of leaderboard results.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeaderboardList'
            application/xml:
              schema:
                $ref: '#/components/schemas/LeaderboardList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List leaderboard results. A missing or unresolvable `score_set` parameter returns `404 Not Found`.
  /round:
    get:
      summary: List rounds
      operationId: GetRoundCollectionV23
      tags:
        - Rounds
      parameters:
        - $ref: '#/components/parameters/roundTypeFilter'
        - $ref: '#/components/parameters/formFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/roundSlugFilter'
        - $ref: '#/components/parameters/roundOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of rounds.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoundList'
            application/xml:
              schema:
                $ref: '#/components/schemas/RoundList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List rounds.
  /round/{round_slug}:
    parameters:
      - $ref: '#/components/parameters/roundSlug'
    get:
      summary: Get round
      operationId: GetRoundV23
      tags:
        - Rounds
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Round retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Round'
            application/xml:
              schema:
                $ref: '#/components/schemas/Round'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the round identified by the specified slug.
  /score-set:
    get:
      summary: List score sets
      operationId: GetScoreSetCollectionV23
      tags:
        - Score sets
      parameters:
        - $ref: '#/components/parameters/scoreSetModeFilter'
        - $ref: '#/components/parameters/formFilter'
        - $ref: '#/components/parameters/seasonFilter'
        - $ref: '#/components/parameters/scoreSetOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/archivedFilter'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of score sets.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScoreSetList'
            application/xml:
              schema:
                $ref: '#/components/schemas/ScoreSetList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List score sets.
  /score-set/{score_set_slug}:
    parameters:
      - $ref: '#/components/parameters/scoreSetSlug'
    get:
      summary: Get score set
      operationId: GetScoreSetV23
      tags:
        - Score sets
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Score set retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScoreSet'
            application/xml:
              schema:
                $ref: '#/components/schemas/ScoreSet'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the score set identified by the specified slug.
  /season:
    get:
      summary: List seasons
      operationId: GetSeasonCollectionV23
      tags:
        - Seasons
      parameters:
        - $ref: '#/components/parameters/seasonOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of seasons.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SeasonList'
            application/xml:
              schema:
                $ref: '#/components/schemas/SeasonList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List seasons.
  /season/{season_slug}:
    parameters:
      - $ref: '#/components/parameters/seasonSlug'
    get:
      summary: Get season
      operationId: GetSeasonV23
      tags:
        - Seasons
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Season retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Season'
            application/xml:
              schema:
                $ref: '#/components/schemas/Season'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the season identified by the specified slug.
  /tax:
    get:
      summary: List taxes
      operationId: GetTaxCollectionV23
      tags:
        - Taxes
      parameters:
        - $ref: '#/components/parameters/taxOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of taxes.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxList'
            application/xml:
              schema:
                $ref: '#/components/schemas/TaxList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List taxes.
  /user:
    get:
      summary: List users
      operationId: GetUserCollectionV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/userActiveInSeasonFilter'
        - $ref: '#/components/parameters/userConfirmationFilter'
        - $ref: '#/components/parameters/userEntriesFilter'
        - $ref: '#/components/parameters/userLanguageFilter'
        - $ref: '#/components/parameters/userRoleFilter'
        - $ref: '#/components/parameters/userSeasonJoinedFilter'
        - $ref: '#/components/parameters/deletedFilter'
        - $ref: '#/components/parameters/trashedFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/userOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Paginated list of users.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserList'
            application/xml:
              schema:
                $ref: '#/components/schemas/UserList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List users.
    post:
      summary: Create user
      operationId: PostUserV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/UserCreate'
      responses:
        '201':
          description: |-
            User created, or an existing user added to the account.

            Two outcomes share this status code:

            - **New user** — a new user record is created. The body is the full user resource and the `Location` header links to it.
            - **Existing user** — the email or mobile already belongs to a user on another account, so that user is added to the current account instead. The body is a confirmation message and no `Location` header is returned.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/User'
                  - type: object
                    description: Confirmation returned when an existing user is added to the account.
                    properties:
                      message:
                        type: string
                        description: Confirmation that an existing user was added to the account.
            application/xml:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/User'
                  - type: object
                    description: Confirmation returned when an existing user is added to the account.
                    properties:
                      message:
                        type: string
                        description: Confirmation that an existing user was added to the account.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a user.
  /user/{user_slug}:
    get:
      summary: Get user
      operationId: GetUserV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/userSlugParameter'
        - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: User retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the user identified by the specified slug or email address.
      x-mint:
        content: The response includes all user fields. File fields include a download link.
    put:
      summary: Update user
      operationId: PutUserV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/userSlug'
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/UserUpdate'
      responses:
        '200':
          description: User updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the user identified by the specified slug.
    delete:
      summary: Delete user
      operationId: DeleteUserV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/userSlug'
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the user identified by the specified slug.
  /user/{user_slug}/auth-token:
    parameters:
      - $ref: '#/components/parameters/userSlug'
    get:
      summary: Get user auth token
      operationId: GetUserAuthTokenV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: Auth token retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthToken'
            application/xml:
              schema:
                $ref: '#/components/schemas/AuthToken'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get an SSO auth token for the specified user.
      x-mint:
        content: |-
          Use the token to log the user into the app using SSO.

          <Card
            title="Creating your own SSO integration"
            icon="key"
            href="https://help.goodgrants.com/hc/en-gb/articles/4409758071055-3rd-party-authentication"
          >
            Learn how to integrate Good Grants with your own SSO provider.
          </Card>
  /user/{user_slug}/restore:
    parameters:
      - $ref: '#/components/parameters/userSlug'
    post:
      summary: Restore user
      operationId: PostUserRestoreV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '204':
          description: User restored.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Restore the previously deleted user identified by the specified slug.
  /user/{user_slug}/upload/{field_slug}:
    parameters:
      - $ref: '#/components/parameters/userSlug'
      - $ref: '#/components/parameters/fieldSlug'
    post:
      summary: Upload user file
      operationId: PostUserUploadV23
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '201':
          description: User file uploaded.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResult'
            application/xml:
              schema:
                $ref: '#/components/schemas/UploadResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Upload a file to the specified field for the user identified by the specified slug.
      requestBody:
        $ref: '#/components/requestBodies/FileUpload'
      x-mint:
        content: |-
          Use this operation to upload a file to a file field on the user.

          <Warning>
          The uploaded file is validated and stored before the response is returned; the file itself is processed shortly after. A `GET` on the returned `Location` immediately after the `201` may briefly return a response with a `null` body until processing is complete.
          </Warning>
  /webhook:
    get:
      summary: List webhooks
      operationId: GetWebhookCollectionV23
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/webhookHttpMethodFilter'
        - $ref: '#/components/parameters/webhookSubscriptionEventFilter'
        - $ref: '#/components/parameters/webhookUrlFilter'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/webhookOrder'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: Paginated list of webhooks.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookList'
            application/xml:
              schema:
                $ref: '#/components/schemas/WebhookList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: List webhooks.
    post:
      summary: Create webhook
      operationId: PostWebhookV23
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/WebhookCreate'
      responses:
        '201':
          description: Webhook created.
          headers:
            Location:
              $ref: '#/components/headers/Location'
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
            application/xml:
              schema:
                $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Create a webhook.
      x-mint:
        content: |-
          Each webhook subscribes to one or more events. When a subscribed event occurs, the webhook URL receives a payload describing the event.

          **Supported subscription events:**

          - allocation_created
          - allocation_payment_created
          - allocation_payment_deleted
          - allocation_payment_status_changed
          - allocation_payment_updated
          - application_category_changed
          - application_chapter_changed
          - application_copied
          - application_created
          - application_deleted
          - application_eligible
          - application_ineligible
          - application_moderated
          - application_resubmitted
          - application_submitted
          - application_tagged
          - application_updated
          - assignment_completed
          - assignment_created
          - collaborator_invited
          - document_created
          - document_deleted
          - document_updated
          - field_value_updated
          - grant_report_created
          - grant_report_submitted
          - grant_status_changed
          - membership_registered (user created)
          - order_payment_pending
          - order_payment_success
          - review_task_created
          - review_task_submitted
          - role_granted
          - user_updated
  /webhook/{webhook_slug}:
    get:
      summary: Get webhook
      operationId: GetWebhookV23
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/webhookSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '200':
          description: Webhook retrieved.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
            application/xml:
              schema:
                $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Get the webhook identified by the specified slug.
    put:
      summary: Update webhook
      operationId: PutWebhookV23
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/webhookSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      requestBody:
        $ref: '#/components/requestBodies/WebhookUpdate'
      responses:
        '200':
          description: Webhook updated.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
            application/xml:
              schema:
                $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Update the webhook identified by the specified slug.
    delete:
      summary: Delete webhook
      operationId: DeleteWebhookV23
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/webhookSlug'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/X-Api-Language'
      responses:
        '204':
          description: No content.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      description: Delete the webhook identified by the specified slug.
webhooks:
  action-task-created:
    post:
      summary: Action task created
      operationId: ActionTaskCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  action-task-submitted:
    post:
      summary: Action task submitted
      operationId: ActionTaskSubmittedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  allocation-created:
    post:
      summary: Allocation created
      operationId: AllocationCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AllocationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  allocation-payment-created:
    post:
      summary: Allocation payment created
      operationId: AllocationPaymentCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  allocation-payment-deleted:
    post:
      summary: Allocation payment deleted
      operationId: AllocationPaymentDeletedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  allocation-payment-status-changed:
    post:
      summary: Allocation payment status changed
      operationId: AllocationPaymentStatusChangedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  allocation-payment-updated:
    post:
      summary: Allocation payment updated
      operationId: AllocationPaymentUpdatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Allocations
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AllocationPaymentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-chapter-changed:
    post:
      summary: Application chapter changed
      operationId: ApplicationChapterChangedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-copied:
    post:
      summary: Application copied
      operationId: ApplicationCopiedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-created:
    post:
      summary: Application created
      operationId: ApplicationCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-deleted:
    post:
      summary: Application deleted
      operationId: ApplicationDeletedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-eligible:
    post:
      summary: Application marked eligible
      operationId: ApplicationEligibleWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-ineligible:
    post:
      summary: Application marked ineligible
      operationId: ApplicationIneligibleWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-moderated:
    post:
      summary: Application moderated
      operationId: ApplicationModeratedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-resubmitted:
    post:
      summary: Application resubmitted
      operationId: ApplicationResubmittedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-submitted:
    post:
      summary: Application submitted
      operationId: ApplicationSubmittedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-tagged:
    post:
      summary: Application tagged
      operationId: ApplicationTaggedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationTaggedWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  application-updated:
    post:
      summary: Application updated
      operationId: ApplicationUpdatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  applications-category-changed:
    post:
      summary: Applications category changed
      operationId: ApplicationsCategoryChangedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  assignment-completed:
    post:
      summary: Assignment completed
      operationId: AssignmentCompletedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AssignmentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  assignment-created:
    post:
      summary: Assignment created
      operationId: AssignmentCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Assignments
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/AssignmentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  collaborator-invited:
    post:
      summary: Collaborator invited
      operationId: CollaboratorInvitedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  document-created:
    post:
      summary: Document created
      operationId: DocumentCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/DocumentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  document-deleted:
    post:
      summary: Document deleted
      operationId: DocumentDeletedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/DocumentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  document-updated:
    post:
      summary: Document updated
      operationId: DocumentUpdatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/DocumentWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  field-value-updated:
    post:
      summary: Field value updated
      operationId: FieldValueUpdatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/UserWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  grant-report-created:
    post:
      summary: Grant report created
      operationId: GrantReportCreatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Grant reports
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/GrantReportWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  grant-report-submitted:
    post:
      summary: Grant report submitted
      operationId: GrantReportSubmittedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Grant reports
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/GrantReportWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  grant-status-changed:
    post:
      summary: Grant status changed
      operationId: GrantStatusChangedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Grant statuses
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/GrantStatusWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  membership-registered:
    post:
      summary: User created
      operationId: MembershipRegisteredWebhookV23
      x-products:
        - Good Grants
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/UserWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  role-granted:
    post:
      summary: Role granted
      operationId: RoleGrantedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/UserWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
  user-updated:
    post:
      summary: User updated
      operationId: UserUpdatedWebhookV23
      x-products:
        - Good Grants
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/Signature'
      security: []
      requestBody:
        $ref: '#/components/requestBodies/UserWebhook'
      responses:
        '200':
          description: Return any 2xx status code to acknowledge receipt of the event.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: |-
        API key used to authenticate and authorise every request.
        Include it in the `x-api-key` header.
  parameters:
    Accept:
      name: Accept
      in: header
      required: true
      description: Defines the response type.
      schema:
        type: string
        enum:
          - application/vnd.Creative Force.v2.3+json
          - application/vnd.Creative Force.v2.3+xml
    X-Api-Language:
      name: x-api-language
      in: header
      required: false
      description: |-
        Defines the languages included in the response. If non are provided, the account default language is returned.

        Value `all` overrides any other values present.

        You can request multiple languages using a comma-separated string of languages.

        The selected language must be supported by your account or a `400` error is returned.
      style: simple
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
            - all
            - ar_AR
            - bg_BG
            - bn_IN
            - ca_ES
            - cs_CZ
            - cy_GB
            - da_DK
            - de_DE
            - en_GB
            - en_US
            - el_GR
            - es_NN
            - es_LA
            - et_EE
            - fa_NN
            - fi_FI
            - fr_FR
            - fr_CA
            - he_IL
            - hi_IN
            - hr_HR
            - hu_HU
            - hy_AM
            - it_IT
            - ja_JP
            - ko_KR
            - lt_LT
            - ms_MY
            - nl_NL
            - nb_NO
            - pl_PL
            - pt_BR
            - ro_RO
            - ru_RU
            - sk_SK
            - sl_SI
            - sq_AL
            - sr_RS
            - sv_SE
            - sw_NN
            - th_TH
            - tr_TR
            - uk_UA
            - vi_VN
            - zh_CN
            - zh_HK
      example:
        - en_GB
        - fr_FR
    reviewTaskActionAtFilter:
      name: action_at
      in: query
      required: false
      description: |-
        Filter by action timestamp.
        Supported values:
        * `[before]=YYYY-MM-DDTHH:MM:SSZ`
        * `[after]=YYYY-MM-DDTHH:MM:SSZ`
        * `[on]=YYYY-MM-DDTHH:MM:SSZ`
        * `[between]=[YYYY-MM-DDTHH:MM:SSZ,YYYY-MM-DDTHH:MM:SSZ]`
      schema:
        type: string
    reviewTaskCreatedAtFilter:
      name: created_at
      in: query
      required: false
      description: |-
        Filter by creation timestamp.
        Supported values:
        * `[before]=YYYY-MM-DDTHH:MM:SSZ`
        * `[after]=YYYY-MM-DDTHH:MM:SSZ`
        * `[on]=YYYY-MM-DDTHH:MM:SSZ`
        * `[between]=[YYYY-MM-DDTHH:MM:SSZ,YYYY-MM-DDTHH:MM:SSZ]`
      schema:
        type: string
    reviewTaskUpdatedAtFilter:
      name: updated_at
      in: query
      required: false
      description: |-
        Filter by update timestamp.
        Supported values:
        * `[before]=YYYY-MM-DDTHH:MM:SSZ`
        * `[after]=YYYY-MM-DDTHH:MM:SSZ`
        * `[on]=YYYY-MM-DDTHH:MM:SSZ`
        * `[between]=[YYYY-MM-DDTHH:MM:SSZ,YYYY-MM-DDTHH:MM:SSZ]`
      schema:
        type: string
    decisionFilter:
      name: decision
      in: query
      required: false
      description: Filter by decision name.
      schema:
        type: string
    reviewStageFilter:
      name: action_stage
      in: query
      required: false
      description: Filter by action stage slug.
      schema:
        type: string
    reviewerFilter:
      name: reviewer
      in: query
      required: false
      description: Filter by reviewer name or email.
      schema:
        type: string
    seasonFilter:
      name: season
      in: query
      required: false
      description: |-
        Filter by season slug.
        Use `all` to show all seasons.
      schema:
        type: string
    deletedFilter:
      name: deleted
      in: query
      required: false
      description: |-
        Filter by deletion mode.
        * `only` - Show only deleted resources.
        * `included` - Include deleted resources.
        * `none` - Exclude deleted resources.
      schema:
        type: string
        enum:
          - only
          - included
          - none
    page:
      name: page
      in: query
      required: false
      description: Specify the page number to return.
      schema:
        type: number
    perPage:
      name: per_page
      in: query
      required: true
      description: |
        Limit the number of items returned to between 1 and 100.

        If you provide a value outside this range, you will receive a `400` response.
      schema:
        type: number
    token:
      name: token
      in: path
      description: Token string.
      required: true
      schema:
        type: string
        pattern: ^[A-Za-z0-9]{16}$|^[A-Za-z0-9]{32}$
    trashedFilter:
      name: trashed
      in: query
      required: false
      description: |-
        Filter by soft-deletion mode.
        * `only` - Show only soft-deleted resources.
        * `all` - Include soft-deleted resources alongside live ones.
        * `none` - Exclude soft-deleted resources.
      schema:
        type: string
        enum:
          - only
          - all
          - none
    allocationPaymentOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `updated`.
      schema:
        type: string
        enum:
          - amount
          - created
          - currency
          - date_due
          - date_paid
          - external_id
          - reference
          - slug
          - status
          - updated
    sortDirection:
      name: dir
      in: query
      required: false
      description: Sort in ascending or descending order. Invalid values are rejected with `400 Bad Request`.
      schema:
        type: string
        enum:
          - asc
          - desc
    allocationPaymentSlug:
      name: allocation_payment_slug
      in: path
      required: true
      description: Slug of the allocation payment.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    allocationOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `updated`.
      schema:
        type: string
        enum:
          - amount
          - created
          - currency
          - paid
          - slug
          - updated
    allocationSlug:
      name: allocation_slug
      in: path
      required: true
      description: Slug of the allocation.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    entryEntrantFilter:
      name: applicant
      in: query
      required: false
      description: Filter by applicant slug.
      schema:
        type: string
    entryModerationFilter:
      name: moderation
      in: query
      required: false
      description: Filter by moderation status.
      schema:
        type: string
        enum:
          - approved
          - undecided
          - rejected
    entryPaymentStatusFilter:
      name: payment_status
      in: query
      required: false
      description: Filter by payment status.
      schema:
        type: string
        enum:
          - paid
          - awaiting_payment
    entryPriceFilter:
      name: price
      in: query
      required: false
      description: Filter by price slug.
      schema:
        type: string
    entryStatusFilter:
      name: status
      in: query
      required: false
      description: Filter by application status.
      schema:
        type: string
        enum:
          - submitted
          - in_progress
          - resubmission_required
          - resubmitted
    entryTitleFilter:
      name: title
      in: query
      required: false
      description: Filter by full or partial application name.
      schema:
        type: string
    entryUpdatedAtFilter:
      name: updated_at
      in: query
      required: false
      description: |-
        Filter by update timestamp.
        Supported values:
        * `[before]=YYYY-MM-DDTHH:MM:SSZ`
        * `[after]=YYYY-MM-DDTHH:MM:SSZ`
        * `[on]=YYYY-MM-DDTHH:MM:SSZ`
        * `[between]=[YYYY-MM-DDTHH:MM:SSZ,YYYY-MM-DDTHH:MM:SSZ]`
      schema:
        type: string
    categoryFilter:
      name: category
      in: query
      required: false
      description: Filter by category slug.
      schema:
        type: string
    chapterFilter:
      name: chapter
      in: query
      required: false
      description: Filter by chapter slug.
      schema:
        type: string
    archivedFilter:
      name: archived
      in: query
      required: false
      description: |-
        Filter by archive mode.
        * `only` - Show only archived resources.
        * `all` - Include archived resources.
        * `none` - Exclude archived resources.
      schema:
        type: string
        enum:
          - only
          - all
          - none
    entryOrder:
      name: order
      in: query
      required: false
      description: Sort by a supported application field.
      schema:
        type: string
        enum:
          - category
          - chapter
          - applicant
          - local_id
          - parent_category
          - title
          - updated
    entrySlug:
      name: application_slug
      in: path
      required: true
      description: Slug of the application.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    entryTagsToAdd:
      name: tags
      in: path
      required: true
      description: Comma-separated list of tags to add to the application. Surrounding whitespace is trimmed from each tag and empty values are ignored. A tag cannot contain a comma or a forward slash.
      schema:
        type: string
    entryTagsToRemove:
      name: tags
      in: path
      required: true
      description: Comma-separated list of tags to remove from the application. Surrounding whitespace is trimmed from each tag and empty values are ignored. Tags that are not currently applied to the application are ignored.
      schema:
        type: string
    fieldSlug:
      name: field_slug
      in: path
      required: true
      description: Slug of the field.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    contributorSlug:
      name: contributor_slug
      in: path
      required: true
      description: Slug of the contributor.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    assignmentSlugFilter:
      name: slug
      in: query
      required: false
      description: Filter to a single assignment by slug. Returns at most one item.
      schema:
        type: string
        pattern: ^[A-Za-z0-9]{24}[JR]$
    assignmentStatusFilter:
      name: status
      in: query
      required: false
      description: Filter by assignment status.
      schema:
        type: string
        enum:
          - none
          - in_progress
          - complete
          - abstained
    judgeFilter:
      name: reviewer
      in: query
      required: false
      description: Filter by reviewer slug.
      schema:
        type: string
    methodFilter:
      name: method
      in: query
      required: false
      description: Filter by assignment method.
      schema:
        type: string
        enum:
          - automatic
          - manual
          - random
          - stray
          - recused
    panelFilter:
      name: panel
      in: query
      required: false
      description: Filter by panel slug.
      schema:
        type: string
    scoreSetFilter:
      name: score_set
      in: query
      required: false
      description: Filter by score set slug.
      schema:
        type: string
    stateFilter:
      name: state
      in: query
      required: false
      description: |-
        Filter by application state.
        * `current` - Only current (non-archived) applications.
        * `archived` - Only archived applications.
        * `all` - Include both current and archived applications.
        * `only` - Equivalent to `archived`.
        * `none` - Exclude all applications.
      schema:
        type: string
        enum:
          - current
          - archived
          - all
          - only
          - none
    tagFilter:
      name: tag
      in: query
      required: false
      description: Filter by tag.
      schema:
        type: string
    assignmentOrder:
      name: order
      in: query
      required: false
      description: |-
        Sort by a supported assignment column. Unsupported values fall back
        silently to the default sort (`updated` descending).
      schema:
        type: string
        enum:
          - method
          - status
          - updated
    assignmentSlug:
      name: assignment_slug
      in: path
      required: true
      description: Slug of the assignment.
      schema:
        type: string
        pattern: ^[A-Za-z0-9]{24}[JR]$
    entryFilter:
      name: application
      in: query
      required: false
      description: Filter by application slug.
      schema:
        type: string
    tabFilter:
      name: tab
      in: query
      required: false
      description: Filter by tab slug.
      schema:
        type: string
    attachmentOrder:
      name: order
      in: query
      required: false
      description: |-
        Sort by a supported attachment field. Unsupported values fall back
        silently to the default sort (`updated` descending).
      schema:
        type: string
        enum:
          - created
          - application
          - order
          - tab
          - updated
    tabSlug:
      name: tab_slug
      in: path
      required: true
      description: Application tab slug
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    activeInactiveStatusFilter:
      name: status
      in: query
      required: false
      description: Filter by status.
      schema:
        type: string
        enum:
          - active
          - inactive
    formFilter:
      name: form
      in: query
      required: false
      description: |-
        Filter by form slug.

        Use the value `all` to include results from every form rather than a single form.
      schema:
        type: string
    parentCategoryFilter:
      name: parent
      in: query
      required: false
      description: Filter by parent category slug.
      schema:
        type: string
    categoryOrder:
      name: order
      in: query
      required: false
      description: |-
        Sort by a supported category field.
        * `parent` - Sort by parent slug.
        * `season` - Sort by season slug.
      schema:
        type: string
        enum:
          - chapter_count
          - created
          - divisions
          - application_count
          - form
          - name
          - parent
          - promoted
          - season
          - shortcode
          - status
          - updated
    categorySlug:
      name: category_slug
      in: path
      required: true
      description: Slug of the category.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    chapterOrder:
      name: order
      in: query
      required: false
      description: Sort by a supported chapter field.
      schema:
        type: string
        enum:
          - created
          - name
          - season
          - status
          - updated
    chapterSlug:
      name: chapter_slug
      in: path
      required: true
      description: Slug of the chapter.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    entryReviewStatusFilter:
      name: review_status
      in: query
      required: false
      description: Filter by review status.
      schema:
        type: string
    contributorOrder:
      name: order
      in: query
      required: false
      description: Sort by a supported contributor field. Custom contributor field slugs are also accepted.
      schema:
        type: string
        enum:
          - application
          - tab
          - created
          - updated
    documentEntrantFilter:
      name: applicant
      in: query
      required: false
      description: Filter by applicant slug.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    documentOrder:
      name: order
      in: query
      required: false
      description: Column to sort by.
      schema:
        type: string
        enum:
          - created_at
          - file
          - file_type
          - name
          - shared_with_user
          - updated_at
    documentSlug:
      name: document_slug
      in: path
      required: true
      description: Slug of the document.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    fieldConditionalFilter:
      name: conditional
      in: query
      required: false
      description: Filter by conditional value.
      schema:
        type: string
    fieldProtectionFilter:
      name: protection
      in: query
      required: false
      description: Filter by protection level.
      schema:
        type: string
        enum:
          - standard
          - elevated
          - maximum
    fieldResourceFilter:
      name: resource
      in: query
      required: false
      description: Filter by resource type.
      schema:
        type: string
        enum:
          - applications
          - users
          - attachments
          - contributors
    fieldTypeFilter:
      name: type
      in: query
      required: false
      description: Filter by field type.
      schema:
        type: string
        enum:
          - checkbox
          - checkboxlist
          - content
          - country
          - currency
          - date
          - datetime
          - drop-down-list
          - email
          - file
          - numeric
          - phone
          - radio
          - table
          - text
          - textarea
          - time
          - url
    fieldOrder:
      name: order
      in: query
      required: false
      description: Sort by a supported field property.
      schema:
        type: string
        enum:
          - title
          - resource
          - type
          - updated
          - created
          - categories
          - order
          - tab
          - form
          - auto_scoring
          - category_count
    formTypeFilter:
      name: form_type
      in: query
      required: false
      description: Filter by form type.
      schema:
        type: string
        enum:
          - application
          - report
    formOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `created`.
      schema:
        type: string
        enum:
          - callToAction
          - chapter_option
          - content_block
          - created
          - name
          - season
          - slug
          - type
          - updated
    formSlug:
      name: form_slug
      in: path
      required: true
      description: Slug of the form.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    fundSlugFilter:
      name: slug
      in: query
      required: false
      description: Filter to a single fund by slug. Returns at most one item.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    fundOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `updated`.
      schema:
        type: string
        enum:
          - allocated
          - available
          - budget
          - created
          - currency
          - name
          - slug
          - updated
    fundSlug:
      name: fund_slug
      in: path
      required: true
      description: Slug of the fund.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    grantStatusSlugFilter:
      name: slug
      in: query
      required: false
      description: Filter to a single grant status by slug. Returns at most one item.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    grantStatusOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `updated`.
      schema:
        type: string
        enum:
          - created
          - grant_count
          - name
          - order
          - slug
          - updated
    grantStatusSlug:
      name: grant_status_slug
      in: path
      required: true
      description: Slug of the grant status.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    leaderboardScoreSetFilter:
      name: score_set
      in: query
      required: true
      description: Filter by score set slug.
      schema:
        type: string
    leaderboardOrder:
      name: order
      in: query
      required: false
      description: |-
        Sort by a supported leaderboard field.
        * `category` - Sort by category slug.
        * `chapter` - Sort by chapter slug.
      schema:
        type: string
        enum:
          - category
          - chapter
          - division
          - link
          - slug
          - status
          - submitted
          - auto_score
          - title
          - tags
    roundTypeFilter:
      name: type
      in: query
      required: false
      description: Filter by round type.
      schema:
        type: string
        enum:
          - application
          - reviewer
          - feedback
    roundSlugFilter:
      name: slug
      in: query
      required: false
      description: Filter to a single round by slug. Returns at most one item.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    roundOrder:
      name: order
      in: query
      required: false
      description: Sort by a supported round field.
      schema:
        type: string
        enum:
          - created
          - end_date
          - name
          - start_date
          - type
          - updated
    roundSlug:
      name: round_slug
      in: path
      required: true
      description: Slug of the round.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    scoreSetModeFilter:
      name: mode
      in: query
      required: false
      description: Filter by score set mode.
      schema:
        type: string
        enum:
          - qualifying
          - top_pick
          - scoring
          - voting
          - gallery
    scoreSetOrder:
      name: order
      in: query
      required: false
      description: Sort by a supported score set field.
      schema:
        type: string
        enum:
          - created
          - mode
          - name
          - updated
    scoreSetSlug:
      name: score_set_slug
      in: path
      required: true
      description: Slug of the score set.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    seasonOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `updated`.
      schema:
        type: string
        enum:
          - created
          - name
          - status
          - updated
    seasonSlug:
      name: season_slug
      in: path
      required: true
      description: Slug of the season.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    taxOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort order.
      schema:
        type: string
        enum:
          - country
          - country_name
          - created
          - name
          - rate
          - region
          - region_name
          - term
          - updated
    userActiveInSeasonFilter:
      name: active_in_season
      in: query
      required: false
      description: Filter by the season the user is active in, identified by season slug.
      schema:
        type: string
    userConfirmationFilter:
      name: confirmation
      in: query
      required: false
      description: Filter by account confirmation status.
      schema:
        type: string
        enum:
          - confirmed
          - pending
    userEntriesFilter:
      name: applications
      in: query
      required: false
      description: Filter by application status.
      schema:
        type: string
        enum:
          - current_season
          - none_current_season
          - archived_season
          - none
    userLanguageFilter:
      name: language
      in: query
      required: false
      description: Filter by language code.
      schema:
        type: string
    userRoleFilter:
      name: role
      in: query
      required: false
      description: Filter by role slug.
      schema:
        type: string
    userSeasonJoinedFilter:
      name: season_joined
      in: query
      required: false
      description: Filter by the season the user joined in, identified by season slug.
      schema:
        type: string
    userOrder:
      name: order
      in: query
      required: false
      description: Column name to order by. An unrecognised value falls back to the default sort by `updated`.
      schema:
        type: string
        enum:
          - confirmed_at
          - created_at
          - created_by
          - email
          - first_name
          - last_name
          - mobile
          - name
          - updated
    userSlugParameter:
      name: user_slug
      in: path
      required: true
      description: |-
        User identifier.

        **Accepts either a user email or an eight-letter slug.**
      schema:
        oneOf:
          - type: string
            format: email
          - type: string
            pattern: ^[A-Za-z]{8}$
    userSlug:
      name: user_slug
      in: path
      required: true
      description: User slug
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    webhookHttpMethodFilter:
      name: http_method
      in: query
      required: false
      description: Filter by HTTP method.
      schema:
        type: string
        enum:
          - get
          - post
    webhookSubscriptionEventFilter:
      name: subscription_event
      in: query
      required: false
      description: Filter by subscription event.
      schema:
        type: string
        enum:
          - allocation_created
          - allocation_payment_created
          - allocation_payment_deleted
          - allocation_payment_status_changed
          - allocation_payment_updated
          - application_category_changed
          - application_chapter_changed
          - application_copied
          - application_created
          - application_deleted
          - application_eligible
          - application_ineligible
          - application_moderated
          - application_resubmitted
          - application_submitted
          - application_tagged
          - application_updated
          - assignment_completed
          - assignment_created
          - collaborator_invited
          - document_created
          - document_deleted
          - document_updated
          - field_value_updated
          - grant_report_created
          - grant_report_submitted
          - grant_status_changed
          - membership_registered
          - order_payment_pending
          - order_payment_success
          - review_task_created
          - review_task_submitted
          - role_granted
          - user_updated
    webhookUrlFilter:
      name: url
      in: query
      required: false
      description: Filter by webhook URL.
      schema:
        type: string
    webhookOrder:
      name: order
      in: query
      required: false
      description: Column to sort by.
      schema:
        type: string
        enum:
          - events
          - method
          - name
          - signing_key
          - updated
          - url
    webhookSlug:
      name: webhook_slug
      in: path
      required: true
      description: Slug of the webhook.
      schema:
        type: string
        pattern: ^[A-Za-z]{8}$
    Signature:
      name: Signature
      in: header
      required: true
      description: |-
        HMAC SHA256 signature of the request body. Generated using the webhook's signing key and the raw JSON payload.

        Generate the same value in your endpoint and compare it with this header to validate the webhook payload.
      schema:
        type: string
        example: a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890
  headers:
    ETag:
      description: Entity tag for the selected representation.
      schema:
        type: string
    X-RateLimit-Limit:
      description: Maximum number of requests allowed per minute.
      schema:
        type: integer
        example: 60
    X-RateLimit-Remaining:
      description: Number of requests remaining in the current rate limit window.
      schema:
        type: integer
        example: 58
    X-RateLimit-Reset:
      description: Unix timestamp when the rate limit window resets.
      schema:
        type: integer
        example: 1783470988
    Retry-After:
      description: Number of seconds the client should wait before retrying.
      schema:
        type: integer
      example: 60
    Location:
      description: URI of the newly created resource.
      schema:
        type: string
        example: https://api.us.cr4ce.com/application/NzAMemqE
  schemas:
    Account:
      type: object
      title: Account
      description: Each account has one owner, one product tier, a region, a timezone, and a set of enabled locales.
      properties:
        created:
          type: string
          format: date-time
          description: Date and time when the account was created.
        domains:
          type: array
          description: Hostnames associated with the account.
          items:
            type: string
        global_id:
          type: string
          format: uuid
          description: Globally unique identifier for the account, stable across slug changes.
        languages:
          type: array
          description: Locales enabled for the account, used as keys for translation maps on other resources (such as category, round, and score-set names).
          items:
            type: object
            properties:
              code:
                type: string
                description: Locale code, for example `en_GB` or `en_US`.
        name:
          type: string
          description: Display name of the account.
        owner:
          type: object
          description: User who owns the account.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the owner.
            link:
              type: string
              format: uri
              description: Canonical URL for the owner resource.
            name:
              type: string
              description: Full display name of the owner.
            first_name:
              type: string
              description: Given name of the owner.
            last_name:
              type: string
              description: Family name of the owner.
        product:
          type: string
          description: Subscription plan tier the account is on, for example `Premium`.
        region:
          type: string
          description: Two-letter region code the account is hosted in, for example `au` or `eu`.
        slug:
          type: string
          description: Short URL-safe identifier for the account.
        timezone:
          type: string
          description: IANA timezone identifier without the slash separator, for example `EuropeLondon`.
        updated:
          type: string
          format: date-time
          description: Date and time when the account record was last updated.
      example:
        created: '2025-01-15T09:00:00Z'
        domains:
          - awards.example.com
        global_id: 6a0c6f70-1b9e-4d63-9c2a-2f8c5d0a1c34
        languages:
          - code: en_GB
          - code: en_US
        name: Example
        owner:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/user/AbCdEfGh
          name: Jane Doe
          first_name: Jane
          last_name: Doe
        product: payment-subscriptions.form.plan-premium.label
        region: au
        slug: WxYzAbCd
        timezone: EuropeLondon
        updated: '2025-06-20T14:30:00Z'
    BaseProblem:
      description: Standard error envelope for all API error responses.
      type: object
      properties:
        message:
          type: string
        status_code:
          type: integer
          minimum: 400
          maximum: 599
    BadRequest:
      allOf:
        - $ref: '#/components/schemas/BaseProblem'
        - type: object
          properties:
            status_code:
              type: integer
              minimum: 400
              maximum: 400
    Unauthorized:
      allOf:
        - $ref: '#/components/schemas/BaseProblem'
        - type: object
          properties:
            status_code:
              type: integer
              minimum: 401
              maximum: 401
    Forbidden:
      allOf:
        - $ref: '#/components/schemas/BaseProblem'
        - type: object
          properties:
            status_code:
              type: integer
              minimum: 403
              maximum: 403
    TooManyRequests:
      allOf:
        - $ref: '#/components/schemas/BaseProblem'
        - type: object
          properties:
            status_code:
              type: integer
              minimum: 429
              maximum: 429
    Pagination:
      type: object
      title: Pagination
      properties:
        current_page:
          type: integer
          description: Number of the page returned by this response, starting at `1`.
        first_page_url:
          type: string
          description: URL of the first page in the result set, relative when the requested page is beyond the last page.
        from:
          type:
            - integer
            - 'null'
          description: Position of the first record on this page within the full result set, starting at `1`, or `null` when the requested page is beyond the last page.
        last_page:
          type: integer
          description: Total number of pages.
        last_page_url:
          type: string
          description: URL of the last page in the result set, relative when the requested page is beyond the last page.
        next_page_url:
          type: string
          description: URL of the next page in the result set, empty when the current page is the last page.
        path:
          type: string
          description: Canonical URL of the endpoint, without query parameters.
        per_page:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
          description: Maximum number of records returned per page.
        prev_page_url:
          type: string
          description: URL of the previous page in the result set, empty when the current page is the first page.
        to:
          type:
            - integer
            - 'null'
          description: Position of the last record on this page within the full result set, or `null` when the requested page is beyond the last page.
        total:
          type: integer
          description: Total number of records across all pages.
    ReviewTask:
      title: Action task
      description: Single action task, an application paired with an action stage, listing the reviewers responsible for actioning it.
      type: object
      properties:
        action_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Date and time when the action task was actioned, `null` if not yet actioned.
        category:
          type: object
          description: Category the application belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the category.
            link:
              type: string
              format: uri
              description: Canonical URL for the category resource.
            name:
              type: object
              description: Translated name of the category, keyed by locale code.
              additionalProperties:
                type: string
        created:
          type: string
          format: date-time
          description: Date and time when the action task was created.
        decision:
          type:
            - string
            - 'null'
          description: Decision recorded against the action task, `null` if none recorded.
        application:
          type: object
          description: Application the action task relates to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the application.
            link:
              type: string
              format: uri
              description: Canonical URL for the application resource.
            title:
              type: string
              description: Title of the application.
        action_stage:
          type: object
          description: Action stage the task belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the action stage.
            link:
              type: string
              format: uri
              description: Canonical URL for the action stage resource.
            name:
              type: object
              description: Translated name of the action stage, keyed by locale code.
              additionalProperties:
                type: string
        reviewer:
          type: array
          description: Reviewers responsible for actioning the action task.
          items:
            type: object
            properties:
              name:
                type: string
                description: Display name of the reviewer.
              email:
                type: string
                format: email
                description: Email address of the reviewer.
        season:
          type: object
          description: Season the application belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Translated name of the season, keyed by locale code.
              additionalProperties:
                type: string
        token:
          type: string
          description: Token uniquely identifying the action task.
        updated:
          type: string
          format: date-time
          description: Date and time when the action task was last updated.
      example:
        action_at: null
        category:
          slug: CdEfGhIj
          link: https://api.au.cr4ce.com/category/CdEfGhIj
          name:
            en_GB: Photography
        created: '2026-01-15T09:00:00Z'
        decision: null
        application:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/application/AbCdEfGh
          title: Sustainable Cities Initiative
        action_stage:
          slug: EfGhIjKl
          link: https://api.au.cr4ce.com/action-stage/EfGhIjKl
          name:
            en_GB: First round
        reviewer:
          - name: Jane Smith
            email: jane.smith@example.com
        season:
          slug: QrStUvWx
          link: https://api.au.cr4ce.com/season/QrStUvWx
          name:
            en_GB: '2025'
        token: REDACTED
        updated: '2026-01-15T09:00:00Z'
    ReviewTaskList:
      title: Action task list
      description: Paginated list of action tasks.
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              description: Action tasks for the current page.
              items:
                $ref: '#/components/schemas/ReviewTask'
      example:
        current_page: 1
        data:
          - action_at: null
            category:
              slug: CdEfGhIj
              link: https://api.au.cr4ce.com/category/CdEfGhIj
              name:
                en_GB: Photography
            created: '2026-01-15T09:00:00Z'
            decision: null
            application:
              slug: AbCdEfGh
              link: https://api.au.cr4ce.com/application/AbCdEfGh
              title: Sustainable Cities Initiative
            action_stage:
              slug: EfGhIjKl
              link: https://api.au.cr4ce.com/action-stage/EfGhIjKl
              name:
                en_GB: First round
            reviewer:
              - name: Jane Smith
                email: jane.smith@example.com
            season:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/season/QrStUvWx
              name:
                en_GB: '2025'
            token: REDACTED
            updated: '2026-01-15T09:00:00Z'
        first_page_url: https://api.au.cr4ce.com/action-task?page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/action-task?page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/action-task
        per_page: 10
        prev_page_url: ''
        to: 1
        total: 1
    UnprocessableEntity:
      allOf:
        - $ref: '#/components/schemas/BaseProblem'
        - type: object
          properties:
            status_code:
              type: integer
              minimum: 422
              maximum: 422
            errors:
              type: object
              description: Map of request field to the list of validation messages, present only on field-level validation failures.
              additionalProperties:
                type: array
                items:
                  type: string
    NotFound:
      allOf:
        - $ref: '#/components/schemas/BaseProblem'
        - type: object
          properties:
            status_code:
              type: integer
              minimum: 404
              maximum: 404
    AllocationPaymentSummary:
      type: object
      description: Core allocation payment fields shared by the list and single-payment responses.
      properties:
        allocation:
          type: object
          description: Allocation the payment is drawn against.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the allocation.
            link:
              type: string
              format: uri
              description: Canonical URL of the allocation resource.
        amount:
          type: number
          description: Amount of the payment, in the fund's currency.
        comments:
          type: string
          description: 'Comment log attached to the payment, formatted as newline-joined `author (timestamp): body` entries, empty when there are none.'
        created:
          type: string
          format: date-time
          description: Date and time when the payment was created.
        currency:
          type: string
          description: ISO 4217 currency code of the payment's amounts, drawn from the fund's currency.
        date_due:
          type:
            - string
            - 'null'
          format: date-time
          description: Date and time when the payment is due, `null` if not set.
        date_paid:
          type:
            - string
            - 'null'
          format: date-time
          description: Date and time when the payment was made, `null` if not yet paid.
        external_id:
          type: string
          description: External identifier of the payment, used to reconcile with downstream systems, empty when none is set.
        grant_status:
          type:
            - object
            - 'null'
          description: Grant status of the application, `null` when there is none.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the grant status.
            link:
              type: string
              format: uri
              description: Canonical URL of the grant status resource.
            name:
              type: object
              description: Name of the grant status.
              additionalProperties:
                type: string
        payment_method:
          type:
            - object
            - 'null'
          description: Payment method recorded against the payment, `null` when none is set.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the payment method.
            link:
              type: string
              format: uri
              description: Canonical URL of the payment method resource.
            name:
              type: object
              description: Name of the payment method.
              additionalProperties:
                type: string
        reference:
          type: string
          description: Free-text reference for the payment, empty when none is set.
        season:
          type: object
          description: Season the payment belongs to.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the season.
            link:
              type: string
              format: uri
              description: Canonical URL of the season resource.
            name:
              type: object
              description: Name of the season.
              additionalProperties:
                type: string
        slug:
          type: string
          description: URL-safe identifier of the payment.
        status:
          type: string
          description: Lifecycle status of the payment, returned as a localised label such as `Scheduled`, `Processing`, `Paid`, `Failed`, or `Failed permanently`.
        updated:
          type: string
          format: date-time
          description: Date and time when the payment was last updated.
    AllocationPaymentList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/AllocationPaymentSummary'
      example:
        current_page: 1
        data:
          - allocation:
              slug: rDrYaZBk
              link: https://api.au.cr4ce.com/allocation/rDrYaZBk
            amount: 1000
            comments: ''
            created: '2026-06-01T09:07:37Z'
            currency: EUR
            date_due: '2026-06-01T00:00:00Z'
            date_paid: '2026-06-01T00:00:00Z'
            external_id: ''
            grant_status: null
            payment_method:
              slug: LvdWOgqM
              link: https://api.au.cr4ce.com/payment-method/LvdWOgqM
              name:
                en_GB: Bank transfer
            reference: '1'
            season:
              slug: wboyrBmo
              link: https://api.au.cr4ce.com/season/wboyrBmo
              name:
                en_GB: '2026'
            slug: BOKLMWVn
            status: Paid
            updated: '2026-06-01T09:07:37Z'
          - allocation:
              slug: kPGawYNx
              link: https://api.au.cr4ce.com/allocation/kPGawYNx
            amount: 50
            comments: ''
            created: '2026-05-06T12:53:03Z'
            currency: EUR
            date_due: '2026-05-06T00:00:00Z'
            date_paid: '2026-05-06T00:00:00Z'
            external_id: ''
            grant_status: null
            payment_method:
              slug: LvdWOgqM
              link: https://api.au.cr4ce.com/payment-method/LvdWOgqM
              name:
                en_GB: Bank transfer
            reference: '1'
            season:
              slug: wboyrBmo
              link: https://api.au.cr4ce.com/season/wboyrBmo
              name:
                en_GB: '2026'
            slug: MGPzOYmx
            status: Scheduled
            updated: '2026-05-06T12:53:03Z'
        first_page_url: https://api.au.cr4ce.com/allocation-payment?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/allocation-payment?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/allocation-payment
        per_page: 10
        prev_page_url: ''
        to: 2
        total: 2
    AllocationPaymentDetail:
      type: object
      description: Additional allocation payment fields returned only for a single allocation payment.
      properties:
        allocation_amount:
          type: number
          description: Total amount of the allocation the payment is drawn against, in the fund's currency.
        applicant:
          type:
            - object
            - 'null'
          description: Applicant who owns the application, `null` when there is none.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the applicant.
            link:
              type: string
              format: uri
              description: Canonical URL of the applicant resource.
            name:
              type: string
              description: Full display name of the applicant.
            first_name:
              type: string
              description: Given name of the applicant.
            last_name:
              type: string
              description: Family name of the applicant.
            email:
              type: string
              description: Email address of the applicant.
            global_id:
              type: string
              description: Account-independent identifier of the applicant.
        application:
          type:
            - object
            - 'null'
          description: Application the allocation belongs to, `null` when there is none.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the application.
            id:
              type: integer
              description: Internal numeric identifier of the application.
            title:
              type: string
              description: Title of the application as submitted by the applicant.
            link:
              type: string
              format: uri
              description: Canonical URL of the application resource.
        fund:
          type: object
          description: Fund the allocation draws from.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the fund.
            link:
              type: string
              format: uri
              description: Canonical URL of the fund resource.
            name:
              type: object
              description: Name of the fund.
              additionalProperties:
                type: string
    AllocationPayment:
      title: Allocation payment
      description: Scheduled or recorded disbursement of funds against an allocation.
      allOf:
        - $ref: '#/components/schemas/AllocationPaymentSummary'
        - $ref: '#/components/schemas/AllocationPaymentDetail'
      example:
        allocation:
          slug: NqqplzPl
          link: https://api.au.cr4ce.com/allocation/NqqplzPl
        allocation_amount: 500
        amount: 280.65
        comments: ''
        created: '2024-03-19T14:00:25Z'
        currency: GBP
        date_due: null
        date_paid: null
        applicant:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/user/AbCdEfGh
          name: Jane Doe
          first_name: Jane
          last_name: Doe
          email: jane.doe@example.com
          global_id: 9c78dcbc-53cf-42f1-b5b3-82fe396f66e6
        application:
          slug: PqRsTuVw
          id: 4821
          title: Project title
          link: https://api.au.cr4ce.com/application/PqRsTuVw
        external_id: ''
        fund:
          slug: PVzOmlXO
          link: https://api.au.cr4ce.com/fund/PVzOmlXO
          name:
            en_GB: Maintenance
        grant_status: null
        payment_method: null
        reference: ''
        season:
          slug: wboyrBmo
          link: https://api.au.cr4ce.com/season/wboyrBmo
          name:
            en_GB: '2026'
        slug: oQKEeNDy
        status: Scheduled
        updated: '2024-03-19T14:00:35Z'
    AllocationPaymentCommentResult:
      type: object
      description: Result of adding a comment to an allocation payment.
      properties:
        allocation-payment:
          type: string
          description: Slug of the allocation payment the comment was added to.
        comment:
          type: string
          description: Body of the comment.
        slug:
          type: string
          description: URL-safe identifier of the comment.
    Allocation:
      title: Allocation
      description: Award of funds from a fund's budget to an application, the grant slot that allocation payments draw against.
      type: object
      properties:
        amount:
          type: number
          description: Total amount allocated to the application from the fund, in the fund's currency.
        applicant:
          type:
            - object
            - 'null'
          description: Applicant who owns the application, `null` when there is none.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the applicant.
            link:
              type: string
              format: uri
              description: Canonical URL of the applicant resource.
            name:
              type: string
              description: Full display name of the applicant.
            first_name:
              type: string
              description: Given name of the applicant.
            last_name:
              type: string
              description: Family name of the applicant.
        application:
          type:
            - object
            - 'null'
          description: Application the allocation belongs to, `null` when there is none.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the application.
            id:
              type: integer
              description: Internal numeric identifier of the application.
            title:
              type: string
              description: Title of the application as submitted by the applicant.
            link:
              type: string
              format: uri
              description: Canonical URL of the application resource.
        chapter:
          type:
            - object
            - 'null'
          description: Chapter the application belongs to, `null` when there is none.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the chapter.
            link:
              type: string
              format: uri
              description: Canonical URL of the chapter resource.
            name:
              type: object
              description: Name of the chapter.
              additionalProperties:
                type: string
        created:
          type: string
          format: date-time
          description: Date and time when the allocation was created.
        currency:
          type: string
          description: ISO 4217 currency code of the allocation's amounts, drawn from the fund's currency.
        fund:
          type: object
          description: Fund the allocation draws from.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the fund.
            link:
              type: string
              format: uri
              description: Canonical URL of the fund resource.
            name:
              type: object
              description: Name of the fund.
              additionalProperties:
                type: string
        paid:
          type: number
          description: Outstanding amount due on the allocation, in the fund's currency.
        season:
          type: object
          description: Season the allocation belongs to.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the season.
            link:
              type: string
              format: uri
              description: Canonical URL of the season resource.
            name:
              type: object
              description: Name of the season.
              additionalProperties:
                type: string
        slug:
          type: string
          description: URL-safe identifier of the allocation.
        updated:
          type: string
          format: date-time
          description: Date and time when the allocation was last updated.
      example:
        amount: 1000
        applicant:
          slug: BwXxQawR
          link: https://api.au.cr4ce.com/user/BwXxQawR
          name: Jane Smith
          first_name: Jane
          last_name: Smith
        application:
          slug: DeqEWpwO
          id: 69146
          title: Project title
          link: https://api.au.cr4ce.com/application/DeqEWpwO
        chapter:
          slug: VbaERKdP
          link: https://api.au.cr4ce.com/chapter/VbaERKdP
          name:
            en_GB: Glenlivet
        created: '2026-06-02T13:05:18Z'
        currency: USD
        fund:
          slug: KYEKONwe
          link: https://api.au.cr4ce.com/fund/KYEKONwe
          name:
            en_GB: USD
        paid: 250
        season:
          slug: wboyrBmo
          link: https://api.au.cr4ce.com/season/wboyrBmo
          name:
            en_GB: '2026'
        slug: NxlGMaaj
        updated: '2026-06-02T13:05:18Z'
    AllocationList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Allocation'
      example:
        current_page: 1
        data:
          - amount: 1000
            applicant:
              slug: BwXxQawR
              link: https://api.au.cr4ce.com/user/BwXxQawR
              name: Jane Smith
              first_name: Jane
              last_name: Smith
            application:
              slug: DeqEWpwO
              id: 69146
              title: Project title
              link: https://api.au.cr4ce.com/application/DeqEWpwO
            chapter:
              slug: VbaERKdP
              link: https://api.au.cr4ce.com/chapter/VbaERKdP
              name:
                en_GB: Glenlivet
            created: '2026-06-02T13:05:18Z'
            currency: USD
            fund:
              slug: KYEKONwe
              link: https://api.au.cr4ce.com/fund/KYEKONwe
              name:
                en_GB: USD
            paid: 250
            season:
              slug: wboyrBmo
              link: https://api.au.cr4ce.com/season/wboyrBmo
              name:
                en_GB: '2026'
            slug: NxlGMaaj
            updated: '2026-06-02T13:05:18Z'
        first_page_url: https://api.au.cr4ce.com/allocation?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/allocation?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/allocation
        per_page: 10
        prev_page_url: ''
        to: 1
        total: 1
    EntrySummary:
      type: object
      description: Core application fields shared by the list and single-application responses.
      properties:
        applicant:
          type: object
          description: Applicant who created and owns the application.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the applicant.
            link:
              type: string
              format: uri
              description: URL of the applicant resource.
            name:
              type: string
              description: Full name of the applicant.
            first_name:
              type: string
              description: First name of the applicant.
            last_name:
              type: string
              description: Last name of the applicant.
            email:
              type: string
              format: email
              description: Email address of the applicant.
            global_id:
              type: string
              description: Globally unique identifier of the applicant.
        auto_score:
          type: integer
          description: Automated score calculated for the application.
        category:
          type: object
          description: Category the application is assigned to.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the category.
            link:
              type: string
              format: uri
              description: URL of the category resource.
            name:
              type: object
              description: Name of the category, keyed by locale code.
              additionalProperties:
                type: string
        chapter:
          type: object
          description: Chapter the entry is assigned to.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the chapter.
            link:
              type: string
              format: uri
              description: URL of the chapter resource.
            name:
              type: object
              description: Name of the chapter, keyed by locale code.
              additionalProperties:
                type: string
        comments:
          type: string
          description: Manager comments recorded on the entry, joined into a single string.
        contributor_count:
          type: integer
          description: Number of contributors linked to the application.
        created:
          type: string
          format: date-time
          description: Date and time when the entry was created.
        custom_deadline:
          type: string
          description: Custom submission deadline for the entry, or `-` when none is set.
        division:
          type:
            - integer
            - 'null'
          description: Division number assigned to the entry, or `null` when none is assigned.
        eligibility_status:
          type: string
          description: Eligibility status of the application.
        files_count:
          type: integer
          description: Number of files uploaded to the application.
        form:
          type: object
          description: Entry form used to capture the application.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the form.
            link:
              type: string
              format: uri
              description: URL of the form resource.
            name:
              type: object
              description: Name of the form, keyed by locale code.
              additionalProperties:
                type: string
        grant_end_date:
          type:
            - string
            - 'null'
          description: Date when the grant ends, or `null` when not applicable, shown only when the grants feature is enabled.
        grant_status:
          type:
            - object
            - 'null'
          description: Grant status assigned to the entry, or `null` when none is set, shown only when the grants feature is enabled.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the grant status.
            link:
              type: string
              format: uri
              description: URL of the grant status resource.
            name:
              type: object
              description: Name of the grant status, keyed by locale code.
              additionalProperties:
                type: string
        local_id:
          type: integer
          description: Sequential identifier of the entry within the account.
        moderation_status:
          type: string
          description: Moderation status of the application.
        parent_category:
          type:
            - object
            - 'null'
          description: Parent of the assigned category, or `null` when the category has no parent.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the parent category.
            link:
              type: string
              format: uri
              description: URL of the parent category resource.
            name:
              type: object
              description: Name of the parent category, keyed by locale code.
              additionalProperties:
                type: string
        payment_status:
          type: string
          description: Payment status of the application.
        plagiarism_scan_status:
          type: string
          description: Plagiarism scan status of the application.
        review_status:
          type: string
          description: Review status of the application.
        season:
          type: object
          description: Season the entry belongs to.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the season.
            link:
              type: string
              format: uri
              description: URL of the season resource.
            name:
              type: object
              description: Name of the season, keyed by locale code.
              additionalProperties:
                type: string
        slug:
          type: string
          description: URL-safe identifier of the application.
        status:
          type: string
          description: Submission status of the application, for example `submitted`, `in_progress`, `resubmission_required`, `resubmitted`, `invited`, or `not_approved_for_submission`.
        submitted:
          type:
            - string
            - 'null'
          format: date-time
          description: Date and time when the entry was submitted, or `null` when not yet submitted.
        tags:
          type: string
          description: Tags applied to the entry, as a comma-separated list.
        title:
          type: string
          description: Title of the application.
        updated:
          type: string
          format: date-time
          description: Date and time when the entry was last updated.
        user_comments:
          type: string
          description: Comments left by users on the entry, joined into a single string.
    EntryList:
      description: Paginated list of applications.
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              description: Applications on the current page.
              items:
                $ref: '#/components/schemas/EntrySummary'
      example:
        current_page: 1
        data:
          - applicant:
              slug: AbCdEfGh
              link: https://api.au.cr4ce.com/user/AbCdEfGh
              name: Jane Doe
              first_name: Jane
              last_name: Doe
              email: jane.doe@example.com
              global_id: 9c78dcbc-53cf-42f1-b5b3-82fe396f66e6
            auto_score: 0
            category:
              slug: EfGhIjKl
              link: https://api.au.cr4ce.com/category/EfGhIjKl
              name:
                en_GB: Short film
            chapter:
              slug: MnOpQrSt
              link: https://api.au.cr4ce.com/chapter/MnOpQrSt
              name:
                en_GB: Europe
            comments: 'Jane Roe (2025-06-03T10:45:29+00:00): manager comment'
            contributor_count: 1
            created: '2025-03-11T15:00:03Z'
            custom_deadline: '-'
            division: 2
            eligibility_status: ''
            files_count: 1
            form:
              slug: StUvWxYz
              link: https://api.au.cr4ce.com/form/StUvWxYz
              name:
                en_GB: Entry form
            grant_end_date: null
            grant_status: null
            local_id: 916
            moderation_status: undecided
            parent_category: null
            payment_status: Paid
            plagiarism_scan_status: unscanned
            review_status: ''
            season:
              slug: BcDeFgHi
              link: https://api.au.cr4ce.com/season/BcDeFgHi
              name:
                en_GB: '2026'
            slug: PqRsTuVw
            status: submitted
            submitted: '2025-08-11T13:19:42Z'
            tags: documentary, finalist
            title: Documentary series
            updated: '2026-06-18T07:25:20Z'
            user_comments: 'Jane Roe (2025-02-19T14:22:43+00:00): strong submission'
          - applicant:
              slug: IjKlMnOp
              link: https://api.au.cr4ce.com/user/IjKlMnOp
              name: John Doe
              first_name: John
              last_name: Doe
              email: john.doe@example.com
              global_id: 2f4c9b1a-7d6e-4c3b-9a2f-1e8d5c7b6a40
            auto_score: 0
            category:
              slug: EfGhIjKl
              link: https://api.au.cr4ce.com/category/EfGhIjKl
              name:
                en_GB: Short film
            chapter:
              slug: MnOpQrSt
              link: https://api.au.cr4ce.com/chapter/MnOpQrSt
              name:
                en_GB: Europe
            comments: ''
            contributor_count: 0
            created: '2025-04-02T09:12:00Z'
            custom_deadline: '-'
            division: null
            eligibility_status: ''
            files_count: 0
            form:
              slug: StUvWxYz
              link: https://api.au.cr4ce.com/form/StUvWxYz
              name:
                en_GB: Entry form
            grant_end_date: null
            grant_status: null
            local_id: 917
            moderation_status: undecided
            parent_category: null
            payment_status: Unpaid
            plagiarism_scan_status: unscanned
            review_status: ''
            season:
              slug: BcDeFgHi
              link: https://api.au.cr4ce.com/season/BcDeFgHi
              name:
                en_GB: '2026'
            slug: YzAbCdEf
            status: in_progress
            submitted: null
            tags: ''
            title: Working title
            updated: '2025-04-02T09:12:00Z'
            user_comments: ''
    EntryDetail:
      type: object
      description: Detailed application collections returned only for a single application.
      properties:
        application_fields:
          type: array
          description: Form field responses captured on the application.
          items:
            type: object
            properties:
              slug:
                type: string
                description: URL-safe identifier of the field.
              link:
                type: string
                format: uri
                description: URL of the field resource.
              label:
                type: object
                description: Label of the field, as an HTML fragment, keyed by locale code.
                additionalProperties:
                  type: string
              title:
                type: object
                description: Plain-text title of the field, keyed by locale code.
                additionalProperties:
                  type: string
              value:
                description: Value submitted for the field, or `null` when none is recorded.
              token:
                type: string
                description: File token for the uploaded file, present on file fields.
              dynamicRows:
                type: array
                description: Rows captured for a table field.
                items: {}
              values:
                type: object
                description: Cell values for a table field, keyed by cell reference.
                additionalProperties:
                  type: string
              translated:
                type: object
                description: Translated value submitted for the field, keyed by locale code.
                additionalProperties:
                  type: string
              download:
                type: string
                format: uri
                description: Temporary download URL for the uploaded file, present on file fields.
        attachments:
          type: array
          description: Files attached to the application.
          items:
            type: object
            properties:
              token:
                type: string
                description: URL-safe identifier of the attachment.
              link:
                type: string
                format: uri
                description: URL of the attachment resource.
              file:
                type: object
                description: File stored for the attachment.
                properties:
                  token:
                    type: string
                    description: URL-safe identifier of the file.
                  link:
                    type: string
                    format: uri
                    description: URL of the file resource.
                  filename:
                    type: string
                    description: Original name of the uploaded file.
                  download:
                    type: string
                    format: uri
                    description: Temporary download URL for the file.
              attachment_fields:
                type: array
                description: Field responses captured against the attachment.
                items:
                  type: object
                  properties:
                    slug:
                      type: string
                      description: URL-safe identifier of the field.
                    link:
                      type: string
                      format: uri
                      description: URL of the field resource.
                    label:
                      type: object
                      description: Label of the field, as an HTML fragment, keyed by locale code.
                      additionalProperties:
                        type: string
                    title:
                      type: object
                      description: Plain-text title of the field, keyed by locale code.
                      additionalProperties:
                        type: string
                    value:
                      type: string
                      description: Value submitted for the field.
                    translated:
                      type: object
                      description: Translated value submitted for the field, keyed by locale code.
                      additionalProperties:
                        type: string
              tab:
                type: object
                description: Form tab the attachment belongs to.
                properties:
                  slug:
                    type: string
                    description: URL-safe identifier of the tab.
                  type:
                    type: string
                    description: Type of the tab.
                  created_at:
                    type: string
                    format: date-time
                    description: Date and time when the tab was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Date and time when the tab was last updated.
        contributors:
          type: array
          description: Contributors linked to the application.
          items:
            type: object
            properties:
              slug:
                type: string
                description: URL-safe identifier of the contributor.
              tab:
                type: object
                description: Form tab the contributor belongs to.
                properties:
                  slug:
                    type: string
                    description: URL-safe identifier of the tab.
                  type:
                    type: string
                    description: Type of the tab.
                  created_at:
                    type: string
                    format: date-time
                    description: Date and time when the tab was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Date and time when the tab was last updated.
              contributor_fields:
                type: array
                description: Field responses captured against the contributor.
                items:
                  type: object
                  properties:
                    slug:
                      type: string
                      description: URL-safe identifier of the field.
                    link:
                      type: string
                      format: uri
                      description: URL of the field resource.
                    label:
                      type: object
                      description: Label of the field, as an HTML fragment, keyed by locale code.
                      additionalProperties:
                        type: string
                    title:
                      type: object
                      description: Plain-text title of the field, keyed by locale code.
                      additionalProperties:
                        type: string
                    value:
                      type: string
                      description: Value submitted for the field.
                    translated:
                      type: object
                      description: Translated value submitted for the field, keyed by locale code.
                      additionalProperties:
                        type: string
    Entry:
      description: Single application, including the applicant, form field responses, attachments, contributors, and status.
      allOf:
        - $ref: '#/components/schemas/EntrySummary'
        - $ref: '#/components/schemas/EntryDetail'
      example:
        applicant:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/user/AbCdEfGh
          name: Jane Doe
          first_name: Jane
          last_name: Doe
          email: jane.doe@example.com
          global_id: 9c78dcbc-53cf-42f1-b5b3-82fe396f66e6
        application_fields:
          - slug: IjKlMnOp
            link: https://api.au.cr4ce.com/field/IjKlMnOp
            label:
              en_GB: <p>Summary</p>
            title:
              en_GB: Summary
            value: A short film about resilience.
            translated:
              en_GB: ''
          - slug: QrStUvWx
            link: https://api.au.cr4ce.com/field/QrStUvWx
            label:
              en_GB: <p>Budget</p>
            title:
              en_GB: Budget
            dynamicRows: []
            values:
              B1: '23.00'
              C1: '32'
            translated:
              en_GB: ''
          - slug: YzAbCdEf
            link: https://api.au.cr4ce.com/field/YzAbCdEf
            label:
              en_GB: <p>Supporting document</p>
            title:
              en_GB: Supporting document
            value: null
            token: GhIjKlMnOpQrStUv
            download: https://files.au.cr4ce.com/file/GhIjKlMnOpQrStUv/brief.pdf?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
            translated:
              en_GB: ''
        attachments:
          - token: GhIjKlMnOpQrStUv
            link: https://api.au.cr4ce.com/attachment/GhIjKlMnOpQrStUv
            file:
              token: GhIjKlMnOpQrStUv
              link: https://api.au.cr4ce.com/file/GhIjKlMnOpQrStUv
              filename: brief.pdf
              download: https://files.au.cr4ce.com/file/GhIjKlMnOpQrStUv/brief.pdf?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
            attachment_fields: []
            tab:
              slug: WxYzAbCd
              type: Attachments
              created_at: '2025-04-27T01:00:00Z'
              updated_at: '2025-05-12T14:00:00Z'
        auto_score: 0
        category:
          slug: EfGhIjKl
          link: https://api.au.cr4ce.com/category/EfGhIjKl
          name:
            en_GB: Short film
        chapter:
          slug: MnOpQrSt
          link: https://api.au.cr4ce.com/chapter/MnOpQrSt
          name:
            en_GB: Europe
        comments: 'Jane Roe (2025-06-03T10:45:29+00:00): manager comment'
        contributor_count: 1
        contributors:
          - slug: UvWxYzAb
            tab:
              slug: CdEfGhIj
              type: Contributors
              created_at: '2025-04-13T10:35:30Z'
              updated_at: '2025-06-18T14:42:14Z'
            contributor_fields:
              - slug: KlMnOpQr
                link: https://api.au.cr4ce.com/field/KlMnOpQr
                label:
                  en_GB: <p>Role</p>
                title:
                  en_GB: Role
                value: Director
                translated:
                  en_GB: ''
        created: '2025-03-11T15:00:03Z'
        custom_deadline: '-'
        division: 2
        eligibility_status: ''
        files_count: 1
        form:
          slug: StUvWxYz
          link: https://api.au.cr4ce.com/form/StUvWxYz
          name:
            en_GB: Entry form
        grant_end_date: null
        grant_status: null
        local_id: 916
        moderation_status: undecided
        parent_category: null
        payment_status: Paid
        plagiarism_scan_status: unscanned
        review_status: ''
        season:
          slug: BcDeFgHi
          link: https://api.au.cr4ce.com/season/BcDeFgHi
          name:
            en_GB: '2026'
        slug: PqRsTuVw
        status: submitted
        submitted: '2025-08-11T13:19:42Z'
        tags: documentary, finalist
        title: Documentary series
        updated: '2026-06-18T07:25:20Z'
        user_comments: 'Jane Roe (2025-02-19T14:22:43+00:00): strong submission'
    UploadResult:
      type: object
      title: UploadResult
      description: Receipt returned when a file is uploaded to a category, chapter, application, or user field.
      properties:
        filename:
          type: string
          description: Original filename of the uploaded file, including the extension.
        token:
          type: string
          description: Opaque identifier for the stored file, used as the `{token}` path parameter on `/file/{token}`.
        link:
          type: string
          format: uri
          description: Canonical URL for retrieving the uploaded file.
      example:
        filename: example.pdf
        token: AbCdEfGhIjKlMnOp
        link: https://api.au.cr4ce.com/file/AbCdEfGhIjKlMnOp
    Attachment:
      type: object
      title: Attachment
      description: File attached to an application through an attachments-typed form tab.
      properties:
        application:
          type: object
          description: Application the attachment belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the application.
            link:
              type: string
              format: uri
              description: Canonical URL for the application resource.
            title:
              type: string
              description: Title of the application as submitted by the applicant.
        attachment_fields:
          type: array
          description: Form fields captured against this attachment, one item per field, in form order.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the field.
              link:
                type: string
                format: uri
                description: Canonical URL for the field resource.
              label:
                type: object
                description: Display label shown to the applicant, may contain HTML or be empty, keyed by locale code.
                additionalProperties:
                  type: string
              title:
                type: object
                description: Short title used to refer to the field in administrative contexts, keyed by locale code.
                additionalProperties:
                  type: string
              value:
                type: string
                description: Raw stored value for the field, as submitted by the applicant.
              translated:
                type: object
                description: Human-readable rendering of `value` resolved against the field definition, keyed by locale code.
                additionalProperties:
                  type: string
              download:
                type: string
                format: uri
                description: Time-limited download URL, present only for file-typed fields with an underlying file.
        created:
          type: string
          format: date-time
          description: Date and time when the attachment was created.
        file:
          type: object
          description: File backing the attachment.
          properties:
            token:
              type: string
              description: Token identifying the file.
            link:
              type: string
              format: uri
              description: Canonical URL for the file resource.
            download:
              type:
                - string
                - 'null'
              format: uri
              description: Time-limited download URL for the underlying file, or `null` when no signed URL can be resolved.
            filename:
              type: string
              description: Original filename as uploaded.
        order:
          type: integer
          description: Position of the attachment within its tab.
        tab:
          type: object
          description: Attachments tab the attachment belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the tab.
            link:
              type: string
              format: uri
              description: Canonical URL for the tab resource.
            name:
              type: object
              description: Name of the tab, keyed by locale code.
              additionalProperties:
                type: string
        token:
          type: string
          description: Token identifying the attachment file, same value as `file.token`.
        updated:
          type: string
          format: date-time
          description: Date and time when the attachment was last updated.
      example:
        application:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/application/AbCdEfGh
          title: Project title
        attachment_fields:
          - slug: IjKlMnOp
            link: https://api.au.cr4ce.com/field/IjKlMnOp
            label:
              en_GB: Type of attachment
            title:
              en_GB: Type of attachment
            value: Photo
            translated:
              en_GB: Photo
          - slug: QrStUvWx
            link: https://api.au.cr4ce.com/field/QrStUvWx
            label:
              en_GB: <p>URL</p>
            title:
              en_GB: URL
            value: https://example.com/image.svg
            translated:
              en_GB: https://example.com/image.svg
        created: '2025-04-27T01:00:00Z'
        file:
          token: AbCdEfGhIjKlMnOp
          link: https://api.au.cr4ce.com/file/AbCdEfGhIjKlMnOp
          download: https://files.au.cr4ce.com/file/AbCdEfGhIjKlMnOp/example.pdf?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
          filename: example.pdf
        order: 1
        tab:
          slug: YzAbCdEf
          link: https://api.au.cr4ce.com/tab/YzAbCdEf
          name:
            en_GB: Attachments
        token: AbCdEfGhIjKlMnOp
        updated: '2025-04-27T01:05:00Z'
    Contributor:
      type: object
      properties:
        application:
          type: object
          description: Application the contributor is attached to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the application.
            link:
              type: string
              format: uri
              description: Canonical URL for the application resource.
            title:
              type: string
              description: Title of the application.
        created:
          type: string
          format: date-time
          description: Date and time when the contributor was created.
        fields:
          type: array
          description: Field values captured for the contributor, one item per field on the contributor tab.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the field.
              link:
                type: string
                format: uri
                description: Canonical URL for the field resource.
              label:
                type: object
                description: Label of the field as an HTML fragment, keyed by locale code.
                additionalProperties:
                  type: string
              title:
                type: object
                description: Plain-text title of the field, keyed by locale code.
                additionalProperties:
                  type: string
              value:
                description: Value submitted for the field, type depends on the field type.
              translated:
                type: object
                description: Translated value submitted for the field, keyed by locale code.
                additionalProperties:
                  type: string
        season:
          type: object
          description: Season the contributor belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Display name of the season, keyed by locale code.
              additionalProperties:
                type: string
        slug:
          type: string
          description: Short URL-safe identifier for the contributor.
        tab:
          type: object
          description: Contributor tab the contributor belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the tab.
            link:
              type: string
              format: uri
              description: Canonical URL for the tab resource.
            name:
              type: object
              description: Display name of the tab, keyed by locale code.
              additionalProperties:
                type: string
        updated:
          type: string
          format: date-time
          description: Date and time when the contributor was last updated.
      example:
        application:
          slug: IjKlMnOp
          link: https://api.au.cr4ce.com/application/IjKlMnOp
          title: Documentary submission
        created: '2025-01-15T09:00:00Z'
        fields:
          - slug: StUvWxYz
            link: https://api.au.cr4ce.com/field/StUvWxYz
            label:
              en_GB: Team member name
            title:
              en_GB: Team member name
            value: Jane Roe
            translated:
              en_GB: ''
          - slug: KlMnOpQr
            link: https://api.au.cr4ce.com/field/KlMnOpQr
            label:
              en_GB: <p>Confirmed</p>
            title:
              en_GB: Confirmed
            value: true
            translated:
              en_GB: ''
        season:
          slug: QrStUvWx
          link: https://api.au.cr4ce.com/season/QrStUvWx
          name:
            en_GB: '2025'
        slug: AbCdEfGh
        tab:
          slug: MnOpQrSt
          link: https://api.au.cr4ce.com/tab/MnOpQrSt
          name:
            en_GB: Contributors
        updated: '2025-06-20T14:30:00Z'
    Assignment:
      type: object
      title: Assignment
      description: Single scoring task for an application, addressed to either a reviewer or a role within a given round and score set.
      properties:
        application:
          type: object
          description: Application the assignment refers to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the application.
            link:
              type: string
              format: uri
              description: Canonical URL for the application resource.
            title:
              type: string
              description: Title of the application as submitted by the applicant.
        category:
          type: object
          description: Category the application belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the category.
            link:
              type: string
              format: uri
              description: Canonical URL for the category resource.
            name:
              type: object
              description: Translated name of the category, keyed by locale code.
              additionalProperties:
                type: string
        chapter:
          type: object
          description: Chapter the category belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the chapter.
            link:
              type: string
              format: uri
              description: Canonical URL for the chapter resource.
            name:
              type: object
              description: Translated name of the chapter, keyed by locale code.
              additionalProperties:
                type: string
        comments:
          type:
            - object
            - 'null'
          description: Comments attached to the assignment, `null` for role-based assignments.
          properties:
            judging:
              type: array
              description: Comments left by the reviewer during scoring.
              items:
                type: object
                properties:
                  slug:
                    type: string
                    description: Short URL-safe identifier for the comment.
                  comment:
                    type: string
                    description: Comment body as an HTML fragment, empty when the user saved a comment with no content.
                  created_at:
                    type: string
                    format: date-time
                    description: Date and time when the comment was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Date and time when the comment was last updated.
                  user:
                    type: object
                    description: User who left the comment.
                    properties:
                      slug:
                        type: string
                        description: Short URL-safe identifier for the user.
                      link:
                        type: string
                        format: uri
                        description: Canonical URL for the user resource.
                      name:
                        type: string
                        description: Full display name of the user.
                      first_name:
                        type: string
                        description: Given name of the user.
                      last_name:
                        type: string
                        description: Family name of the user.
            abstention:
              type: array
              description: Comments left when the reviewer marked the application as abstained.
              items:
                type: object
                properties:
                  slug:
                    type: string
                    description: Short URL-safe identifier for the comment.
                  comment:
                    type: string
                    description: Comment body as an HTML fragment, empty when the user saved a comment with no content.
                  created_at:
                    type: string
                    format: date-time
                    description: Date and time when the comment was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Date and time when the comment was last updated.
                  user:
                    type: object
                    description: User who left the comment.
                    properties:
                      slug:
                        type: string
                        description: Short URL-safe identifier for the user.
                      link:
                        type: string
                        format: uri
                        description: Canonical URL for the user resource.
                      name:
                        type: string
                        description: Full display name of the user.
                      first_name:
                        type: string
                        description: Given name of the user.
                      last_name:
                        type: string
                        description: Family name of the user.
            conflict:
              type: array
              description: Comments left when the reviewer flagged a conflict of interest.
              items:
                type: object
                properties:
                  slug:
                    type: string
                    description: Short URL-safe identifier for the comment.
                  comment:
                    type: string
                    description: Comment body as an HTML fragment, empty when the user saved a comment with no content.
                  created_at:
                    type: string
                    format: date-time
                    description: Date and time when the comment was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Date and time when the comment was last updated.
                  user:
                    type: object
                    description: User who left the comment.
                    properties:
                      slug:
                        type: string
                        description: Short URL-safe identifier for the user.
                      link:
                        type: string
                        format: uri
                        description: Canonical URL for the user resource.
                      name:
                        type: string
                        description: Full display name of the user.
                      first_name:
                        type: string
                        description: Given name of the user.
                      last_name:
                        type: string
                        description: Family name of the user.
            criteria:
              type: array
              description: Comments grouped by score-set criterion.
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name of the criterion, in the account's default locale.
                  comments:
                    type: array
                    description: Comments left against this criterion.
                    items:
                      type: object
                      properties:
                        slug:
                          type: string
                          description: Short URL-safe identifier for the comment.
                        comment:
                          type: string
                          description: Comment body as an HTML fragment, empty when the user saved a comment with no content.
                        created_at:
                          type: string
                          format: date-time
                          description: Date and time when the comment was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: Date and time when the comment was last updated.
                        user:
                          type: object
                          description: User who left the comment.
                          properties:
                            slug:
                              type: string
                              description: Short URL-safe identifier for the user.
                            link:
                              type: string
                              format: uri
                              description: Canonical URL for the user resource.
                            name:
                              type: string
                              description: Full display name of the user.
                            first_name:
                              type: string
                              description: Given name of the user.
                            last_name:
                              type: string
                              description: Family name of the user.
        created:
          type: string
          format: date-time
          description: Date and time when the assignment was created.
        form:
          type: string
          description: Slug of the form attached to the application.
        method:
          type: string
          description: How the assignment was created, for example `Manual`, `Automatic (Panel)`, `Recused`, or `Stray`.
        panels:
          type: array
          description: Panels the assignment is associated with.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the panel.
              link:
                type: string
                format: uri
                description: Canonical URL for the panel resource.
              name:
                type: object
                description: Translated name of the panel, keyed by locale code.
                additionalProperties:
                  type: string
        reviewer:
          type:
            - object
            - 'null'
          description: Reviewer assigned to score the application, `null` for role-based assignments.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the reviewer.
            link:
              type: string
              format: uri
              description: Canonical URL for the reviewer resource.
            name:
              type: string
              description: Full display name of the reviewer.
        role:
          type:
            - object
            - 'null'
          description: Role assigned to score the application, `null` for reviewer-specific assignments.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the role.
            link:
              type: string
              format: uri
              description: Canonical URL for the role resource.
            name:
              type: object
              description: Translated name of the role, keyed by locale code.
              additionalProperties:
                type: string
        rounds:
          type: array
          description: Rounds the assignment applies to.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the round.
              link:
                type: string
                format: uri
                description: Canonical URL for the round resource.
              name:
                type: object
                description: Translated name of the round, keyed by locale code.
                additionalProperties:
                  type: string
        score:
          type:
            - object
            - 'null'
          description: Score for this assignment, formatted per the score-set mode, `null` when no score has been recorded.
        score_set:
          type:
            - object
            - 'null'
          description: Score set used to evaluate the application.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the score set.
            link:
              type: string
              format: uri
              description: Canonical URL for the score set resource.
            name:
              type: object
              description: Translated name of the score set, keyed by locale code.
              additionalProperties:
                type: string
        slug:
          type: string
          description: Short URL-safe identifier for the assignment.
        status:
          type: string
          description: Current state of the assignment, for example `To be scored`, `In progress`, or `Complete`.
        updated:
          type: string
          format: date-time
          description: Date and time when the assignment was last updated.
      example:
        application:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/application/AbCdEfGh
          title: Project title
        category:
          slug: WxYzAbCd
          link: https://api.au.cr4ce.com/category/WxYzAbCd
          name:
            en_GB: Documentary
        chapter:
          slug: MnOpQrSt
          link: https://api.au.cr4ce.com/chapter/MnOpQrSt
          name:
            en_GB: Film
        comments:
          judging: []
          abstention: []
          conflict: []
          criteria:
            - name: Originality
              comments: []
            - name: Execution
              comments: []
        created: '2025-01-15T09:00:00Z'
        form: GhIjKlMn
        method: Automatic (Panel)
        panels:
          - slug: OpQrStUv
            link: https://api.au.cr4ce.com/panel/OpQrStUv
            name:
              en_GB: Panel A
        reviewer:
          slug: EfGhIjKl
          link: https://api.au.cr4ce.com/judge/EfGhIjKl
          name: Jane Doe
        role: null
        rounds:
          - slug: QrStUvWx
            link: https://api.au.cr4ce.com/round/QrStUvWx
            name:
              en_GB: Judging
        score: null
        score_set:
          slug: UvWxYzAb
          link: https://api.au.cr4ce.com/score-set/UvWxYzAb
          name:
            en_GB: Scoring rubric
        slug: AbCdEfGhEfGhIjKlUvWxYzAbA
        status: To be scored
        updated: '2025-06-20T14:30:00Z'
    AssignmentList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Assignment'
      example:
        current_page: 1
        data:
          - application:
              slug: IjKlMnOp
              link: https://api.au.cr4ce.com/application/IjKlMnOp
              title: Photo series
            category:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/category/QrStUvWx
              name:
                en_GB: Photography
            chapter:
              slug: MnOpQrSt
              link: https://api.au.cr4ce.com/chapter/MnOpQrSt
              name:
                en_GB: Image
            comments:
              judging:
                - slug: AbCdEfGh
                  comment: <p>Strong composition.</p>
                  created_at: '2025-05-20T11:00:00Z'
                  updated_at: '2025-05-20T11:00:00Z'
                  user:
                    slug: YzAbCdEf
                    link: https://api.au.cr4ce.com/user/YzAbCdEf
                    name: Jane Doe
                    first_name: Jane
                    last_name: Doe
              abstention: []
              conflict: []
              criteria:
                - name: Composition
                  comments: []
            created: '2025-05-20T10:30:00Z'
            form: GhIjKlMn
            method: Stray
            panels: []
            reviewer:
              slug: YzAbCdEf
              link: https://api.au.cr4ce.com/judge/YzAbCdEf
              name: Jane Doe
            role: null
            rounds: []
            score: null
            score_set:
              slug: KlMnOpQr
              link: https://api.au.cr4ce.com/score-set/KlMnOpQr
              name:
                en_GB: Scoring rubric
            slug: IjKlMnOpYzAbCdEfKlMnOpQrA
            status: To be scored
            updated: '2025-06-10T09:00:00Z'
        first_page_url: https://api.au.cr4ce.com/assignment?per_page=50&page=1
        from: 1
        last_page: 4
        last_page_url: https://api.au.cr4ce.com/assignment?per_page=50&page=4
        next_page_url: https://api.au.cr4ce.com/assignment?per_page=50&page=2
        path: https://api.au.cr4ce.com/assignment
        per_page: 50
        prev_page_url: ''
        to: 50
        total: 175
    AttachmentList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Attachment'
      example:
        current_page: 1
        data:
          - application:
              slug: PqRsTuVw
              link: https://api.au.cr4ce.com/application/PqRsTuVw
              title: Documentary series
            attachment_fields:
              - slug: KlMnOpQr
                link: https://api.au.cr4ce.com/field/KlMnOpQr
                label:
                  en_GB: <p>Headshot</p>
                title:
                  en_GB: Headshot
                value: GhIjKlMnOpQrStUv
                translated:
                  en_GB: headshot.jpg
                download: https://files.au.cr4ce.com/file/GhIjKlMnOpQrStUv/headshot.jpg?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
            created: '2025-05-12T14:00:00Z'
            file:
              token: GhIjKlMnOpQrStUv
              link: https://api.au.cr4ce.com/file/GhIjKlMnOpQrStUv
              download: https://files.au.cr4ce.com/file/GhIjKlMnOpQrStUv/headshot.jpg?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
              filename: headshot.jpg
            order: 2
            tab:
              slug: YzAbCdEf
              link: https://api.au.cr4ce.com/tab/YzAbCdEf
              name:
                en_GB: Attachments
            token: GhIjKlMnOpQrStUv
            updated: '2025-05-12T14:05:00Z'
        first_page_url: https://api.au.cr4ce.com/attachment?per_page=10&page=1
        from: 1
        last_page: 2
        last_page_url: https://api.au.cr4ce.com/attachment?per_page=10&page=2
        next_page_url: https://api.au.cr4ce.com/attachment?per_page=10&page=2
        path: https://api.au.cr4ce.com/attachment
        per_page: 10
        prev_page_url: ''
        to: 10
        total: 12
    AttachmentCreateResult:
      type: object
      title: AttachmentCreateResult
      description: Receipt returned after an attachment is created.
      properties:
        token:
          type: string
          description: Opaque identifier for the new attachment, used as the `{token}` path parameter on `/attachment/{token}`.
        link:
          type: string
          format: uri
          description: Canonical URL for the new attachment resource.
        file:
          $ref: '#/components/schemas/UploadResult'
      example:
        token: AbCdEfGhIjKlMnOp
        link: https://api.au.cr4ce.com/attachment/AbCdEfGhIjKlMnOp
        file:
          filename: example.pdf
          token: QrStUvWxYzAbCdEf
          link: https://api.au.cr4ce.com/file/QrStUvWxYzAbCdEf
    CategoryBase:
      type: object
      properties:
        created:
          type: string
          format: date-time
          description: Date and time when the category was created.
        description:
          type: object
          description: Description shown to applicants on the category, as an HTML fragment map keyed by locale code.
          additionalProperties:
            type: string
        divisions:
          type: integer
          minimum: 1
          description: Number of divisions configured for the category, always at least `1`.
        form:
          type: object
          description: Application form attached to the category.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the form.
            link:
              type: string
              format: uri
              description: Canonical URL for the form resource.
            name:
              type: object
              description: Map of translated strings keyed by locale code (for example, `en_GB` or `fr_FR`).
              additionalProperties:
                type: string
        name:
          type: object
          description: Display name of the category, as a map of translated strings keyed by locale code.
          additionalProperties:
            type: string
        parent:
          type:
            - object
            - 'null'
          description: Parent category this category sits under, or `null` for a top-level category.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the parent category.
            link:
              type: string
              format: uri
              description: Canonical URL for the parent category resource.
            name:
              type: object
              description: Map of translated strings keyed by locale code (for example, `en_GB` or `fr_FR`).
              additionalProperties:
                type: string
        promoted:
          type:
            - integer
            - 'null'
          enum:
            - 0
            - 1
            - null
          description: Promotion state of the category, `1` when promoted, `0` when not, and `null` when unset.
        season:
          type: object
          description: Season the category belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Map of translated strings keyed by locale code (for example, `en_GB` or `fr_FR`).
              additionalProperties:
                type: string
        shortcode:
          type: object
          description: Short code used to reference the category, as a map of translated strings keyed by locale code.
          additionalProperties:
            type: string
        slug:
          type: string
          description: Short URL-safe identifier for the category.
        status:
          type: string
          enum:
            - active
            - inactive
          description: Current state of the category.
        updated:
          type: string
          format: date-time
          description: Date and time when the category was last updated.
    CategoryList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/CategoryBase'
                  - type: object
                    properties:
                      chapter_count:
                        type: integer
                        description: Number of chapters the category is available in.
                      application_count:
                        type: integer
                        description: Number of applications submitted to the category.
      example:
        current_page: 1
        data:
          - created: '2024-05-23T13:37:43Z'
            description:
              en_GB: Submit your documentary films exploring real-world subjects and stories.
            divisions: 1
            form:
              slug: GhIjKlMn
              link: https://api.au.cr4ce.com/form/GhIjKlMn
              name:
                en_GB: Application form
            name:
              en_GB: Documentary
            parent: null
            promoted: null
            season:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/season/QrStUvWx
              name:
                en_GB: '2025'
            shortcode:
              en_GB: '01'
            slug: AbCdEfGh
            status: active
            updated: '2025-05-07T16:18:07Z'
            chapter_count: 4
            application_count: 3
          - created: '2025-02-10T10:00:00Z'
            description:
              en_GB: Submit short films under 40 minutes in length.
            divisions: 1
            form:
              slug: GhIjKlMn
              link: https://api.au.cr4ce.com/form/GhIjKlMn
              name:
                en_GB: Application form
            name:
              en_GB: Short Film
            parent:
              slug: KlMnOpQr
              link: https://api.au.cr4ce.com/category/KlMnOpQr
              name:
                en_GB: Film
            promoted: 1
            season:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/season/QrStUvWx
              name:
                en_GB: '2025'
            shortcode:
              en_GB: '02'
            slug: WxYzAbCd
            status: active
            updated: '2025-02-10T10:05:00Z'
            chapter_count: 2
            application_count: 0
        first_page_url: https://api.au.cr4ce.com/category?per_page=10&page=1
        from: 1
        last_page: 7
        last_page_url: https://api.au.cr4ce.com/category?per_page=10&page=7
        next_page_url: https://api.au.cr4ce.com/category?per_page=10&page=2
        path: https://api.au.cr4ce.com/category
        per_page: 10
        prev_page_url: ''
        to: 10
        total: 66
    Category:
      title: Category
      description: Grant category that applications are submitted to.
      allOf:
        - $ref: '#/components/schemas/CategoryBase'
        - type: object
          properties:
            chapters:
              type: array
              description: Chapters the category is available in.
              items:
                type: object
                properties:
                  slug:
                    type: string
                    description: Short URL-safe identifier for the chapter.
                  link:
                    type: string
                    format: uri
                    description: Canonical URL for the chapter resource.
                  name:
                    type: object
                    description: Map of translated strings keyed by locale code (for example, `en_GB` or `fr_FR`).
                    additionalProperties:
                      type: string
            applicant_max_applications:
              type:
                - integer
                - 'null'
              description: Maximum number of applications a single applicant may submit to this category, or `null` if uncapped.
            application_name_label:
              type: object
              description: Custom label for the application-name field shown to applicants, as a map of translated strings keyed by locale code.
              additionalProperties:
                type: string
            fill_application_name:
              type: boolean
              description: Specifies whether applicants are asked to name their application when submitting to this category.
            image_heading:
              type: object
              description: Heading shown above the category images, as a map of translated strings keyed by locale code.
              additionalProperties:
                type: string
            images:
              type: array
              description: Images attached to the category.
              items:
                type: object
                properties:
                  token:
                    type: string
                    description: Token identifying the image file.
                  link:
                    type: string
                    format: uri
                    description: Canonical URL for the file resource.
                  filename:
                    type: string
                    description: Original filename as uploaded.
                  download:
                    type: string
                    format: uri
                    description: Time-limited download URL for the image.
            max_image_width:
              type: integer
              description: Maximum display width for the category images, in pixels.
            packing_slip_instructions:
              type: object
              description: Instructions shown on the packing slip for the category, as a map of translated strings keyed by locale code.
              additionalProperties:
                type: string
            pdf_packing_slip:
              type: boolean
              description: Specifies whether a PDF packing slip is enabled for the category.
      example:
        created: '2025-01-15T09:00:00Z'
        description:
          en_GB: Submit your documentary films exploring real-world subjects and stories.
        divisions: 1
        form:
          slug: GhIjKlMn
          link: https://api.au.cr4ce.com/form/GhIjKlMn
          name:
            en_GB: Application form
        name:
          en_GB: Documentary
        parent:
          slug: KlMnOpQr
          link: https://api.au.cr4ce.com/category/KlMnOpQr
          name:
            en_GB: Film
        promoted: null
        season:
          slug: QrStUvWx
          link: https://api.au.cr4ce.com/season/QrStUvWx
          name:
            en_GB: '2025'
        shortcode:
          en_GB: '01'
        slug: AbCdEfGh
        status: active
        updated: '2025-06-20T14:30:00Z'
        chapters:
          - slug: MnOpQrSt
            link: https://api.au.cr4ce.com/chapter/MnOpQrSt
            name:
              en_GB: Film
        applicant_max_applications: null
        application_name_label:
          en_GB: Application title
        fill_application_name: false
        image_heading:
          en_GB: Category image
        images:
          - token: AbCdEfGhIjKlMnOp
            link: https://api.au.cr4ce.com/file/AbCdEfGhIjKlMnOp
            filename: example.png
            download: https://files.au.cr4ce.com/file/AbCdEfGhIjKlMnOp/example.png?Expires=1781657570&Signature=REDACTED&Key-Pair-Id=REDACTED
        max_image_width: 300
        packing_slip_instructions:
          en_GB: Attach this slip to each physical submission.
        pdf_packing_slip: false
    Chapter:
      title: Chapter
      description: Grouping that categories can be made available in.
      type: object
      properties:
        created:
          type: string
          format: date-time
          description: Date and time when the chapter was created.
        description:
          type: object
          description: Description shown for the chapter, as a map of translated strings keyed by locale code.
          additionalProperties:
            type: string
        managers:
          type: array
          description: Users who manage the chapter.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the user.
              link:
                type: string
                format: uri
                description: Canonical URL for the user resource.
              first_name:
                type: string
                description: User's first name.
              last_name:
                type: string
                description: User's last name.
        name:
          type: object
          description: Display name of the chapter, as a map of translated strings keyed by locale code.
          additionalProperties:
            type: string
        season:
          type: object
          description: Season the chapter belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Map of translated strings keyed by locale code (for example, `en_GB` or `fr_FR`).
              additionalProperties:
                type: string
        slug:
          type: string
          description: Short URL-safe identifier for the chapter.
        status:
          type: string
          description: Localized status label for the chapter, such as `Active` or `Inactive`, distinct from the `active`/`inactive` enum used when writing a chapter.
        updated:
          type: string
          format: date-time
          description: Date and time when the chapter was last updated.
      example:
        created: '2024-12-12T09:41:21Z'
        description:
          en_GB: Chapter for the Glenlivet region.
        managers:
          - slug: AbCdEfGh
            link: https://api.au.cr4ce.com/user/AbCdEfGh
            first_name: John
            last_name: Smith
          - slug: CdEfGhIj
            link: https://api.au.cr4ce.com/user/CdEfGhIj
            first_name: Carol
            last_name: Murphy
        name:
          en_GB: Glenlivet
        season:
          slug: EfGhIjKl
          link: https://api.au.cr4ce.com/season/EfGhIjKl
          name:
            en_GB: '2026'
        slug: GhIjKlMn
        status: Active
        updated: '2026-04-13T13:45:50Z'
    ChapterList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Chapter'
      example:
        current_page: 1
        data:
          - created: '2024-12-12T09:41:21Z'
            description:
              en_GB: Chapter for the Glenlivet region.
            managers:
              - slug: AbCdEfGh
                link: https://api.au.cr4ce.com/user/AbCdEfGh
                first_name: John
                last_name: Smith
              - slug: CdEfGhIj
                link: https://api.au.cr4ce.com/user/CdEfGhIj
                first_name: Carol
                last_name: Murphy
            name:
              en_GB: Glenlivet
            season:
              slug: EfGhIjKl
              link: https://api.au.cr4ce.com/season/EfGhIjKl
              name:
                en_GB: '2026'
            slug: GhIjKlMn
            status: Active
            updated: '2026-04-13T13:45:50Z'
          - created: '2023-01-16T10:01:11Z'
            description:
              en_GB: Chapter for the Lecht region.
            managers: []
            name:
              en_GB: Lecht
            season:
              slug: EfGhIjKl
              link: https://api.au.cr4ce.com/season/EfGhIjKl
              name:
                en_GB: '2026'
            slug: IjKlMnOp
            status: Active
            updated: '2026-04-13T13:45:43Z'
        first_page_url: https://api.au.cr4ce.com/chapter?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/chapter?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/chapter
        per_page: 10
        prev_page_url: ''
        to: 4
        total: 4
    ContributorList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Contributor'
      example:
        current_page: 1
        data:
          - application:
              slug: IjKlMnOp
              link: https://api.au.cr4ce.com/application/IjKlMnOp
              title: Documentary submission
            created: '2025-01-15T09:00:00Z'
            fields:
              - slug: StUvWxYz
                link: https://api.au.cr4ce.com/field/StUvWxYz
                label:
                  en_GB: Team member name
                title:
                  en_GB: Team member name
                value: Jane Roe
                translated:
                  en_GB: ''
            season:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/season/QrStUvWx
              name:
                en_GB: '2025'
            slug: AbCdEfGh
            tab:
              slug: MnOpQrSt
              link: https://api.au.cr4ce.com/tab/MnOpQrSt
              name:
                en_GB: Contributors
            updated: '2025-06-20T14:30:00Z'
          - application:
              slug: MnOpQrSt
              link: https://api.au.cr4ce.com/application/MnOpQrSt
              title: Short film submission
            created: '2025-02-10T10:00:00Z'
            fields:
              - slug: UvWxYzAb
                link: https://api.au.cr4ce.com/field/UvWxYzAb
                label:
                  en_GB: <p>Confirmed</p>
                title:
                  en_GB: Confirmed
                value: true
                translated:
                  en_GB: ''
            season:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/season/QrStUvWx
              name:
                en_GB: '2025'
            slug: WxYzAbCd
            tab:
              slug: MnOpQrSt
              link: https://api.au.cr4ce.com/tab/MnOpQrSt
              name:
                en_GB: Contributors
            updated: '2025-02-10T10:05:00Z'
        first_page_url: https://api.au.cr4ce.com/contributor?per_page=10&page=1
        from: 1
        last_page: 2
        last_page_url: https://api.au.cr4ce.com/contributor?per_page=10&page=2
        next_page_url: https://api.au.cr4ce.com/contributor?per_page=10&page=2
        path: https://api.au.cr4ce.com/contributor
        per_page: 10
        prev_page_url: ''
        to: 10
        total: 14
    Document:
      title: Document
      description: Document generated from a document template and attached to an application, allocation, or user.
      type: object
      properties:
        allocation:
          description: Allocation the document is attached to, or an empty array when not attached to one.
          oneOf:
            - type: object
              properties:
                slug:
                  type: string
                  description: Short URL-safe identifier for the allocation.
                link:
                  type: string
                  format: uri
                  description: Canonical URL for the allocation resource.
            - type: array
              maxItems: 0
        application:
          description: Application the document is attached to, or an empty array when not attached to one.
          oneOf:
            - type: object
              properties:
                slug:
                  type: string
                  description: Short URL-safe identifier for the application.
                link:
                  type: string
                  format: uri
                  description: Canonical URL for the application resource.
                title:
                  type: string
                  description: Title of the application.
            - type: array
              maxItems: 0
        created_at:
          type: string
          format: date-time
          description: Date and time when the document was created.
        description:
          type: object
          description: Description of the document, inherited from the document template, keyed by locale code.
          additionalProperties:
            type: string
        file:
          type: object
          description: Generated document file.
          properties:
            token:
              type: string
              description: Token identifying the file.
            link:
              type: string
              format: uri
              description: Canonical URL for the file resource.
            name:
              type: string
              description: Original filename of the generated document.
            download:
              type: string
              format: uri
              description: Time-limited download URL for the file.
        file_type:
          type: string
          enum:
            - PDF
            - Word
          description: File format of the generated document.
        name:
          type: object
          description: Name of the document, keyed by locale code.
          additionalProperties:
            type: string
        shared_with_user:
          type: boolean
          description: Specifies whether the document is shared with the applicant.
        slug:
          type: string
          description: URL-safe identifier of the document.
        user:
          description: User who created the document, or an empty array when none is attached.
          oneOf:
            - type: object
              properties:
                slug:
                  type: string
                  description: Short URL-safe identifier for the user.
                link:
                  type: string
                  format: uri
                  description: Canonical URL for the user resource.
                name:
                  type: string
                  description: Full name of the user.
                first_name:
                  type: string
                  description: First name of the user.
                last_name:
                  type: string
                  description: Last name of the user.
            - type: array
              maxItems: 0
      example:
        allocation: []
        application:
          slug: AbCdEfGh
          link: https://api.au.cr4ce.com/application/AbCdEfGh
          title: Sustainable Cities Initiative
        created_at: '2025-01-15T09:00:00Z'
        description:
          en_GB: ''
        file:
          token: IjKlMnOpQrStUvWx
          link: https://api.au.cr4ce.com/file/IjKlMnOpQrStUvWx
          name: certificate.pdf
          download: https://files.au.cr4ce.com/file/IjKlMnOpQrStUvWx/certificate.pdf?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
        file_type: PDF
        name:
          en_GB: Certificate of application
        shared_with_user: false
        slug: QrStUvWx
        user:
          slug: YzAbCdEf
          link: https://api.au.cr4ce.com/user/YzAbCdEf
          name: Jane Smith
          first_name: Jane
          last_name: Smith
    DocumentList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Document'
      example:
        current_page: 1
        data:
          - allocation: []
            application:
              slug: AbCdEfGh
              link: https://api.au.cr4ce.com/application/AbCdEfGh
              title: Sustainable Cities Initiative
            created_at: '2025-01-15T09:00:00Z'
            description:
              en_GB: ''
            file:
              token: IjKlMnOpQrStUvWx
              link: https://api.au.cr4ce.com/file/IjKlMnOpQrStUvWx
              name: certificate.pdf
              download: https://files.au.cr4ce.com/file/IjKlMnOpQrStUvWx/certificate.pdf?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
            file_type: PDF
            name:
              en_GB: Certificate of application
            shared_with_user: false
            slug: QrStUvWx
            user:
              slug: YzAbCdEf
              link: https://api.au.cr4ce.com/user/YzAbCdEf
              name: Jane Smith
              first_name: Jane
              last_name: Smith
          - allocation:
              slug: KlMnOpQr
              link: https://api.au.cr4ce.com/allocation/KlMnOpQr
            application: []
            created_at: '2025-02-10T10:00:00Z'
            description:
              en_GB: ''
            file:
              token: StUvWxYzAbCdEfGh
              link: https://api.au.cr4ce.com/file/StUvWxYzAbCdEfGh
              name: grant-report.pdf
              download: https://files.au.cr4ce.com/file/StUvWxYzAbCdEfGh/grant-report.pdf?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
            file_type: Word
            name:
              en_GB: Grant report
            shared_with_user: true
            slug: WxYzAbCd
            user:
              slug: YzAbCdEf
              link: https://api.au.cr4ce.com/user/YzAbCdEf
              name: Jane Smith
              first_name: Jane
              last_name: Smith
        first_page_url: https://api.au.cr4ce.com/document?per_page=10&page=1
        from: 1
        last_page: 4
        last_page_url: https://api.au.cr4ce.com/document?per_page=10&page=4
        next_page_url: https://api.au.cr4ce.com/document?per_page=10&page=2
        path: https://api.au.cr4ce.com/document
        per_page: 10
        prev_page_url: ''
        to: 10
        total: 38
    Field:
      type: object
      properties:
        applicant_read_access:
          type: boolean
          description: Whether applicants can view this field.
        applicant_write_access:
          type: boolean
          description: Whether applicants can edit this field.
        auto_scoring:
          type: integer
          description: Score awarded automatically for the field, or `0` when automatic scoring is not configured.
        categories:
          type: array
          description: Category slugs the field is associated with, or `["*"]` for every category.
          items:
            type: string
        category_count:
          description: Number of categories the field is associated with, `all` when it applies to every category, or `null` when not category-scoped.
        conditional_field:
          type:
            - object
            - 'null'
          description: Field whose value controls whether this field is shown, or `null` when the field is not conditional.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the controlling field.
            link:
              type: string
              format: uri
              description: Canonical URL for the controlling field resource.
            name:
              type: object
              description: Display name of the controlling field, keyed by locale code.
              additionalProperties:
                type: string
        created:
          type: string
          format: date-time
          description: Date and time when the field was created.
        file_types:
          type: array
          description: Permitted file extensions for file fields, empty when no restriction applies.
          items:
            type: string
        form:
          type:
            - object
            - 'null'
          description: Form the field belongs to, or `null` when the field is not attached to a form.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the form.
            link:
              type: string
              format: uri
              description: Canonical URL for the form resource.
            name:
              type: object
              description: Display name of the form, keyed by locale code.
              additionalProperties:
                type: string
        help_text:
          type: object
          description: Help text shown for the field, as an HTML fragment keyed by locale code.
          additionalProperties:
            type: string
        hint_text:
          type: object
          description: Hint text shown for the field, as an HTML fragment keyed by locale code.
          additionalProperties:
            type: string
        label:
          type: object
          description: Label of the field, as an HTML fragment keyed by locale code.
          additionalProperties:
            type: string
        max_file_size:
          type:
            - integer
            - 'null'
          description: Maximum upload size in megabytes for file fields, or `null` when no limit applies.
        maximum_characters:
          type:
            - integer
            - 'null'
          description: Maximum number of characters accepted, or `null` when no limit applies.
        maximum_words:
          type:
            - integer
            - 'null'
          description: Maximum number of words accepted, or `null` when no limit applies.
        minimum_characters:
          type:
            - integer
            - 'null'
          description: Minimum number of characters required, or `null` when no limit applies.
        minimum_words:
          type:
            - integer
            - 'null'
          description: Minimum number of words required, or `null` when no limit applies.
        options:
          type: array
          description: Selectable options for choice fields (for example, drop-down or radio). Empty when the field type has no options.
          items:
            type: string
        order:
          type: integer
          description: Position of the field within its tab.
        protection:
          type: string
          description: Protection level governing access to the data for the field (for example, `standard`, `elevated`, or `maximum`).
        registration:
          type:
            - string
            - 'null'
          description: Registration attribute the field is mapped to, or `null` if unmapped.
        required:
          type: boolean
          description: Whether a value is required for the field.
        resource:
          type: string
          description: Resource the field collects data for (for example, `applications`, `contributors`, `referees`, `attachments`, or `users`).
        searchable:
          type: boolean
          description: Whether the field is included in search.
        season:
          type: object
          description: Season the field belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Display name of the season, keyed by locale code.
              additionalProperties:
                type: string
        slug:
          type: string
          description: Short URL-safe identifier for the field.
        tab:
          type:
            - object
            - 'null'
          description: Tab the field belongs to, or `null` when the field is not attached to a tab.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the tab.
            link:
              type: string
              format: uri
              description: Canonical URL for the tab resource.
            name:
              type: object
              description: Display name of the tab, keyed by locale code.
              additionalProperties:
                type: string
        title:
          type: object
          description: Plain-text title of the field, keyed by locale code.
          additionalProperties:
            type: string
        type:
          type: string
          description: Field type (for example, `text`, `textarea`, `drop-down-list`, `file`, `currency`, or `date`).
        updated:
          type: string
          format: date-time
          description: Date and time when the field was last updated.
        visibility:
          type: array
          description: Contexts in which the field is visible (for example, `qualifying`, `top_pick`, `voting`, `gallery`, or `scoring`).
          items:
            type: string
      example:
        applicant_read_access: true
        applicant_write_access: true
        auto_scoring: 0
        categories:
          - '*'
        category_count: all
        conditional_field: null
        created: '2025-01-15T09:00:00Z'
        file_types: []
        form:
          slug: GhIjKlMn
          link: https://api.au.cr4ce.com/form/GhIjKlMn
          name:
            en_GB: Application form
        help_text:
          en_GB: <p>Provide a concise summary of your work.</p>
        hint_text:
          en_GB: <p>Up to 500 words.</p>
        label:
          en_GB: <p>Summary</p>
        max_file_size: null
        maximum_characters: null
        maximum_words: 500
        minimum_characters: null
        minimum_words: null
        options: []
        order: 1
        protection: standard
        registration: null
        required: true
        resource: applications
        searchable: true
        season:
          slug: QrStUvWx
          link: https://api.au.cr4ce.com/season/QrStUvWx
          name:
            en_GB: '2025'
        slug: AbCdEfGh
        tab:
          slug: StUvWxYz
          link: https://api.au.cr4ce.com/tab/StUvWxYz
          name:
            en_GB: About you
        title:
          en_GB: Summary
        type: textarea
        updated: '2025-06-20T14:30:00Z'
        visibility:
          - qualifying
          - scoring
    FieldList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Field'
      example:
        current_page: 1
        data:
          - applicant_read_access: true
            applicant_write_access: true
            auto_scoring: 0
            categories:
              - '*'
            category_count: all
            conditional_field: null
            created: '2025-01-15T09:00:00Z'
            file_types: []
            form:
              slug: GhIjKlMn
              link: https://api.au.cr4ce.com/form/GhIjKlMn
              name:
                en_GB: Application form
            help_text:
              en_GB: <p>Provide a concise summary of your work.</p>
            hint_text:
              en_GB: <p>Up to 500 words.</p>
            label:
              en_GB: <p>Summary</p>
            max_file_size: null
            maximum_characters: null
            maximum_words: 500
            minimum_characters: null
            minimum_words: null
            options: []
            order: 1
            protection: standard
            registration: null
            required: true
            resource: applications
            searchable: true
            season:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/season/QrStUvWx
              name:
                en_GB: '2025'
            slug: AbCdEfGh
            tab:
              slug: StUvWxYz
              link: https://api.au.cr4ce.com/tab/StUvWxYz
              name:
                en_GB: About you
            title:
              en_GB: Summary
            type: textarea
            updated: '2025-06-20T14:30:00Z'
            visibility:
              - qualifying
              - scoring
        first_page_url: https://api.au.cr4ce.com/field?per_page=10&page=1
        from: 1
        last_page: 2
        last_page_url: https://api.au.cr4ce.com/field?per_page=10&page=2
        next_page_url: https://api.au.cr4ce.com/field?per_page=10&page=2
        path: https://api.au.cr4ce.com/field
        per_page: 10
        prev_page_url: ''
        to: 10
        total: 12
    File:
      type: object
      properties:
        download_link:
          type: string
          description: Download URL for the file.
        duration:
          type:
            - number
            - 'null'
          description: Duration of the file in seconds, or `null` for files without a duration.
        filename:
          type: string
          description: Name of the file.
        image_height:
          type:
            - integer
            - 'null'
          description: Height of the image in pixels, or `null` when not available.
        image_width:
          type:
            - integer
            - 'null'
          description: Width of the image in pixels, or `null` when not available.
        metadata:
          type: object
          description: File metadata.
          properties:
            title:
              type: string
              description: Metadata title.
            caption:
              type: string
              description: Metadata caption.
            copyright:
              type: string
              description: Metadata copyright notice.
            created:
              type: string
              description: Metadata creation time.
            city:
              type: string
              description: Metadata city.
            country:
              type: string
              description: Metadata country.
            state:
              type: string
              description: Metadata state.
            camera:
              type: string
              description: Camera model in the metadata.
            exposure:
              type: string
              description: Exposure setting in the metadata.
            iso:
              type: string
              description: ISO setting in the metadata.
            fstop:
              type: string
              description: F-stop setting in the metadata.
            focal_length:
              type: string
              description: Focal length in the metadata.
            size:
              type: string
              description: Size value in the metadata.
        mime:
          type: string
          description: MIME type of the file.
        size:
          type: integer
          description: Size of the file.
        transcoding:
          type: array
          description: Transcoded file variants. Empty when the file is not a video.
          items:
            type: object
            properties:
              basename:
                type: string
                description: Basename of the transcoded file.
              download_link:
                type: string
                description: Download URL for the transcoded file.
              extension:
                type: string
                description: File extension of the transcoded file.
              timestamp:
                type: integer
                description: Unix timestamp of the transcoded file's last modification.
              size:
                type: integer
                description: Size of the transcoded file.
              etag:
                type: string
                description: ETag of the transcoded file.
      example:
        download_link: https://files.au.cr4ce.com/file/AbCdEfGhIjKlMnOp/squirrel-on-log.jpg?Expires=1781485359&Signature=REDACTED&Key-Pair-Id=REDACTED
        duration: null
        filename: squirrel-on-log.jpg
        image_height: null
        image_width: null
        metadata:
          title: ''
          caption: ''
          copyright: ''
          created: ''
          city: ''
          country: ''
          state: ''
          camera: ''
          exposure: ''
          iso: ''
          fstop: ''
          focal_length: ''
          size: 768 x 574
        mime: image/jpeg
        size: 26513
        transcoding: []
    Form:
      title: Form
      description: Form used to collect applications within a season.
      type: object
      properties:
        callToAction:
          type: object
          description: Translated call to action of the form, keyed by locale code.
          additionalProperties:
            type: string
        chapter_option:
          type: string
          description: |-
            How chapters are applied to the form.
            * `all` - Available to every chapter.
            * `select` - Available to selected chapters only.
          enum:
            - all
            - select
        content_block:
          type:
            - object
            - 'null'
          description: Content block displayed with the form, or null if none is assigned.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the content block.
            link:
              type: string
              format: uri
              description: Canonical URL for the content block resource.
            name:
              type: object
              description: Translated name of the content block, keyed by locale code.
              additionalProperties:
                type: string
        created:
          type: string
          format: date-time
          description: Date and time when the form was created.
        name:
          type: object
          description: Translated name of the form, keyed by locale code.
          additionalProperties:
            type: string
        season:
          type:
            - object
            - 'null'
          description: Season the form belongs to, or null if not assigned.
          properties:
            slug:
              type: string
              description: URL-safe identifier of the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Translated name of the season, keyed by locale code.
              additionalProperties:
                type: string
        slug:
          type: string
          description: URL-safe identifier of the form.
        type:
          type: string
          description: |-
            Type of the form.
            * `application` - Collects applications.
            * `report` - Collects grant reports.
          enum:
            - application
            - report
        updated:
          type: string
          format: date-time
          description: Date and time when the form was last updated.
      example:
        callToAction:
          en_GB: ''
        chapter_option: select
        content_block: null
        created: '2024-09-30T10:11:17Z'
        name:
          en_GB: Cycling grants
        season:
          slug: wboyrBmo
          link: https://api.au.cr4ce.com/season/wboyrBmo
          name:
            en_GB: '2026'
        slug: WvmnJgjV
        type: application
        updated: '2025-10-16T08:00:39Z'
    FormList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Form'
      example:
        current_page: 1
        data:
          - callToAction:
              en_GB: ''
            chapter_option: all
            content_block: null
            created: '2026-03-16T08:48:37Z'
            name:
              en_GB: Non-default form (copy)
            season:
              slug: wboyrBmo
              link: https://api.au.cr4ce.com/season/wboyrBmo
              name:
                en_GB: '2026'
            slug: dRRJnXKl
            type: application
            updated: '2026-03-16T08:48:37Z'
          - callToAction:
              en_GB: ''
            chapter_option: all
            content_block: null
            created: '2025-12-23T14:41:16Z'
            name:
              en_GB: grant report form QA
            season:
              slug: wboyrBmo
              link: https://api.au.cr4ce.com/season/wboyrBmo
              name:
                en_GB: '2026'
            slug: rkkkkjle
            type: report
            updated: '2025-12-23T14:41:16Z'
        first_page_url: https://api.au.cr4ce.com/form?per_page=10&page=1
        from: 1
        last_page: 2
        last_page_url: https://api.au.cr4ce.com/form?per_page=10&page=2
        next_page_url: https://api.au.cr4ce.com/form?per_page=10&page=2
        path: https://api.au.cr4ce.com/form
        per_page: 10
        prev_page_url: ''
        to: 10
        total: 20
    Fund:
      title: Fund
      description: Fund holding a monetary budget, tracking allocated and available amounts.
      type: object
      properties:
        allocated:
          type:
            - integer
            - number
          description: Amount allocated from the budget, in the fund's currency.
        available:
          type:
            - integer
            - number
          description: Amount still available to allocate, in the fund's currency, equal to budget minus allocated.
        budget:
          type:
            - integer
            - number
          description: Total budget of the fund, in the fund's currency.
        created:
          type: string
          format: date-time
          description: Date and time when the fund was created.
        currency:
          type: string
          description: ISO 4217 currency code of the fund's amounts.
        description:
          type: object
          description: Translated description of the fund, keyed by locale code.
          additionalProperties:
            type: string
        name:
          type: object
          description: Translated name of the fund, keyed by locale code.
          additionalProperties:
            type: string
        slug:
          type: string
          description: URL-safe identifier of the fund.
        updated:
          type: string
          format: date-time
          description: Date and time when the fund was last updated.
      example:
        allocated: 91661
        available: 8339
        budget: 100000
        created: '2023-11-21T09:57:43Z'
        currency: GBP
        description:
          en_GB: Seed funding for first-time applicants.
        name:
          en_GB: Starter
        slug: KEmBgExL
        updated: '2026-06-02T13:05:08Z'
    FundList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Fund'
      example:
        current_page: 1
        data:
          - allocated: 91661
            available: 8339
            budget: 100000
            created: '2023-11-21T09:57:43Z'
            currency: GBP
            description:
              en_GB: Seed funding for first-time applicants.
            name:
              en_GB: Starter
            slug: KEmBgExL
            updated: '2026-06-02T13:05:08Z'
          - allocated: 5000
            available: 395000
            budget: 400000
            created: '2026-04-20T14:15:30Z'
            currency: SAR
            description:
              en_GB: ''
            name:
              en_GB: Saudi R
            slug: EJwlkZLQ
            updated: '2026-04-20T14:17:34Z'
        first_page_url: https://api.au.cr4ce.com/fund?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/fund?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/fund
        per_page: 10
        prev_page_url: ''
        to: 2
        total: 2
    GrantStatus:
      title: Grant status
      description: Grant status used to track the funding-pipeline stage of grant applications.
      type: object
      properties:
        created:
          type: string
          format: date-time
          description: Date and time when the grant status was created.
        description:
          type: object
          description: Translated description of the grant status, keyed by locale code, and may contain HTML.
          additionalProperties:
            type: string
        grant_count:
          type: integer
          description: Number of applications currently assigned this grant status.
        name:
          type: object
          description: Translated name of the grant status, keyed by locale code.
          additionalProperties:
            type: string
        order:
          type: integer
          description: Position of the grant status in the manager-defined display order.
        slug:
          type: string
          description: URL-safe identifier of the grant status.
        updated:
          type: string
          format: date-time
          description: Date and time when the grant status was last updated.
      example:
        created: '2023-04-10T13:33:27Z'
        description:
          en_GB: For completed grants
        grant_count: 6
        name:
          en_GB: Completed
        order: 2
        slug: VgyLljqj
        updated: '2024-09-03T11:38:00Z'
    GrantStatusList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/GrantStatus'
      example:
        current_page: 1
        data:
          - created: '2023-04-10T13:33:09Z'
            description:
              en_GB: <p>For grants that are currently in progress</p>
            grant_count: 42
            name:
              en_GB: In progress
            order: 1
            slug: mwGbVggp
            updated: '2026-01-08T13:10:51Z'
          - created: '2023-04-10T13:33:27Z'
            description:
              en_GB: For completed grants
            grant_count: 6
            name:
              en_GB: Completed
            order: 2
            slug: VgyLljqj
            updated: '2024-09-03T11:38:00Z'
        first_page_url: https://api.au.cr4ce.com/grant-status?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/grant-status?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/grant-status
        per_page: 10
        prev_page_url: ''
        to: 2
        total: 2
    Leaderboard:
      title: Leaderboard
      description: Single row in a score-set leaderboard, representing one application and its scores.
      type: object
      properties:
        slug:
          type: string
          description: Short URL-safe identifier for the application.
        title:
          type: string
          description: Title of the application as submitted by the applicant.
        tags:
          type: string
          description: Comma-separated tags applied to the application, empty string if none.
        category:
          type:
            - object
            - 'null'
          description: Category the application was submitted to, `null` if not assigned.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the category.
            link:
              type: string
              format: uri
              description: Canonical URL for the category resource.
            name:
              type: object
              description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
              additionalProperties:
                type: string
        chapter:
          type:
            - object
            - 'null'
          description: Chapter the application belongs to, `null` if not assigned.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the chapter.
            link:
              type: string
              format: uri
              description: Canonical URL for the chapter resource.
            name:
              type: object
              description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
              additionalProperties:
                type: string
        division:
          type:
            - string
            - 'null'
          description: Division the application is assigned to, `null` if not assigned.
        submitted:
          type: string
          format: date-time
          description: Date and time when the application was submitted, in ISO 8601 format.
        auto_score:
          type:
            - number
            - 'null'
          description: Automated score calculated from the application's auto-scored fields, `null` if none.
        status:
          type: string
          description: Submission status of the application.
        grant_status:
          type:
            - string
            - 'null'
          description: Grant status of the application, `null` unless grants are enabled.
        link:
          type: string
          format: uri
          description: Canonical URL for the application resource.
        scores:
          description: Scores for the application, shaped by the score set mode (`voting`, `qualifying`, `scoring`, or `top_pick`).
          anyOf:
            - title: Voting
              type: object
              description: Scores returned for a `voting` score set.
              properties:
                total_votes:
                  type: integer
                  description: Total number of votes the application received.
            - title: Qualifying
              type: object
              description: Scores returned for a `qualifying` score set.
              properties:
                final_decision:
                  type:
                    - string
                    - 'null'
                  enum:
                    - pass
                    - fail
                    - unsure
                  description: Qualifying decision recorded for the application, `null` if none recorded.
            - title: Scoring
              type: object
              description: Scores returned for a `scoring` score set.
              properties:
                total_score:
                  type: object
                  description: Aggregated score across all criteria.
                  properties:
                    value:
                      type: number
                      description: Total score awarded across all criteria.
                    max_score:
                      oneOf:
                        - type: integer
                        - type: string
                      description: Maximum achievable total score, empty string if none configured.
                    final_score:
                      type: string
                      description: Formatted total score, such as `8/10`, or `-` if no maximum is configured.
                criteria:
                  type: array
                  description: Per-criterion scores making up the total.
                  items:
                    type: object
                    properties:
                      name:
                        type: object
                        description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
                        additionalProperties:
                          type: string
                      value:
                        type: number
                        description: Score awarded for the criterion.
                      max_score:
                        type: integer
                        description: Maximum achievable score for the criterion.
                      final_score:
                        type: string
                        description: Formatted criterion score, such as `4/5`.
                      weight:
                        type: number
                        description: Relative weight of the criterion in the total.
            - title: Top Pick
              type: object
              description: Scores returned for a `top_pick` score set, keyed by preference position (for example, `preference_1`), with the number of reviewers at that position.
              additionalProperties:
                type: integer
      example:
        slug: AbCdEfGh
        title: Sustainable Cities Initiative
        tags: ''
        category:
          slug: IjKlMnOp
          link: https://api.au.cr4ce.com/category/IjKlMnOp
          name:
            en_GB: Documentary
        chapter:
          slug: QrStUvWx
          link: https://api.au.cr4ce.com/chapter/QrStUvWx
          name:
            en_GB: United Kingdom
        division: null
        submitted: '2026-01-15T09:00:00Z'
        auto_score: 0
        status: submitted
        grant_status: null
        link: https://api.au.cr4ce.com/application/AbCdEfGh
        scores:
          total_score:
            value: 8
            max_score: 10
            final_score: 8/10
          criteria:
            - name:
                en_GB: Originality
              value: 4
              max_score: 5
              final_score: 4/5
              weight: 1
    LeaderboardList:
      title: Leaderboard list
      description: Paginated leaderboard for a single score set, with ranked applications in `data` alongside the score set and season.
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              description: Leaderboard rows for the current page.
              items:
                $ref: '#/components/schemas/Leaderboard'
            score_set:
              type: object
              description: Score set the leaderboard is calculated for.
              properties:
                slug:
                  type: string
                  description: Short URL-safe identifier for the score set.
                name:
                  type: object
                  description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
                  additionalProperties:
                    type: string
                mode:
                  type: string
                  enum:
                    - voting
                    - qualifying
                    - scoring
                    - top_pick
                  description: Scoring mode of the score set, determines the shape of each row's `scores` object.
                form:
                  type: object
                  description: Form the score set scores applications from.
                  properties:
                    slug:
                      type: string
                      description: Short URL-safe identifier for the form.
                    link:
                      type: string
                      format: uri
                      description: Canonical URL for the form resource.
                    name:
                      type: object
                      description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
                      additionalProperties:
                        type: string
            season:
              type: object
              description: Season the leaderboard belongs to.
              properties:
                slug:
                  type: string
                  description: Short URL-safe identifier for the season.
                link:
                  type: string
                  format: uri
                  description: Canonical URL for the season resource.
                name:
                  type: object
                  description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
                  additionalProperties:
                    type: string
      example:
        current_page: 1
        data:
          - slug: AbCdEfGh
            title: Sustainable Cities Initiative
            tags: ''
            category:
              slug: IjKlMnOp
              link: https://api.au.cr4ce.com/category/IjKlMnOp
              name:
                en_GB: Documentary
            chapter:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/chapter/QrStUvWx
              name:
                en_GB: United Kingdom
            division: null
            submitted: '2026-01-15T09:00:00Z'
            auto_score: 0
            status: submitted
            grant_status: null
            link: https://api.au.cr4ce.com/application/AbCdEfGh
            scores:
              total_votes: 12
          - slug: MnOpQrSt
            title: Ocean Cleanup Documentary
            tags: ''
            category:
              slug: IjKlMnOp
              link: https://api.au.cr4ce.com/category/IjKlMnOp
              name:
                en_GB: Documentary
            chapter:
              slug: QrStUvWx
              link: https://api.au.cr4ce.com/chapter/QrStUvWx
              name:
                en_GB: United Kingdom
            division: null
            submitted: '2026-01-12T14:20:00Z'
            auto_score: 0
            status: submitted
            grant_status: null
            link: https://api.au.cr4ce.com/application/MnOpQrSt
            scores:
              total_votes: 9
        first_page_url: https://api.au.cr4ce.com/leaderboard?score_set=UvWxYzAb&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/leaderboard?score_set=UvWxYzAb&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/leaderboard
        per_page: 10
        prev_page_url: ''
        to: 2
        total: 2
        score_set:
          slug: UvWxYzAb
          name:
            en_GB: Voting
          mode: voting
          form:
            slug: GhIjKlMn
            link: https://api.au.cr4ce.com/form/GhIjKlMn
            name:
              en_GB: Application form
        season:
          slug: CdEfGhIj
          link: https://api.au.cr4ce.com/season/CdEfGhIj
          name:
            en_GB: '2025'
    Round:
      title: Round
      description: Phase of a season with its own type, dates, form, and chapters.
      type: object
      properties:
        chapters:
          type: array
          description: Chapters associated with the round.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the chapter.
              link:
                type: string
                format: uri
                description: Canonical URL for the chapter resource.
              name:
                type: object
                description: Map keyed by locale code (for example, `en_GB` or `fr_FR`).
                additionalProperties:
                  type: string
        created:
          type: string
          format: date-time
          description: Date and time when the round was created.
        end_date:
          type:
            - string
            - 'null'
          description: Date and time when the round closes, in `YYYY-MM-DD HH:MM:SS` format, or null when no close date is set.
        form:
          type: string
          description: Slug of the form associated with the round.
        name:
          type: object
          description: Map keyed by locale code (for example, `en_GB` or `fr_FR`).
          additionalProperties:
            type: string
        season:
          type: object
          description: Season the round belongs to.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the season.
            link:
              type: string
              format: uri
              description: Canonical URL for the season resource.
            name:
              type: object
              description: Map keyed by locale code (for example, `en_GB` or `fr_FR`).
              additionalProperties:
                type: string
        slug:
          type: string
          description: Short URL-safe identifier for the round.
        start_date:
          type:
            - string
            - 'null'
          description: Date and time when the round opens, in `YYYY-MM-DD HH:MM:SS` format, or null when no open date is set.
        type:
          type: string
          description: Type of the round.
          enum:
            - application
            - reviewer
            - feedback
        updated:
          type: string
          format: date-time
          description: Date and time when the round was last updated.
      example:
        chapters:
          - slug: CdEfGhIj
            link: https://api.au.cr4ce.com/chapter/CdEfGhIj
            name:
              en_GB: Open
        created: '2026-01-15T09:00:00Z'
        end_date: '2026-03-31 23:59:59'
        form: AbCdEfGh
        name:
          en_GB: Entry round
        season:
          slug: QrStUvWx
          link: https://api.au.cr4ce.com/season/QrStUvWx
          name:
            en_GB: '2025'
        slug: EfGhIjKl
        start_date: '2026-01-01 00:00:00'
        type: application
        updated: '2026-01-15T09:00:00Z'
    RoundList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Round'
      example:
        current_page: 1
        data:
          - chapters:
              - slug: AbCdEfGh
                link: https://api.eu.cr4ce.com/chapter/AbCdEfGh
                name:
                  en_GB: lecht
              - slug: CdEfGhIj
                link: https://api.eu.cr4ce.com/chapter/CdEfGhIj
                name:
                  en_GB: Glencoe
            created: '2026-06-24T13:57:52Z'
            end_date: null
            form: EfGhIjKl
            name:
              en_GB: form 15
            season:
              slug: GhIjKlMn
              link: https://api.eu.cr4ce.com/season/GhIjKlMn
              name:
                en_GB: '2026'
            slug: IjKlMnOp
            start_date: null
            type: application
            updated: '2026-06-24T13:57:52Z'
          - chapters: []
            created: '2025-02-13T11:41:26Z'
            end_date: '2026-04-22 07:43:00'
            form: KlMnOpQr
            name:
              en_GB: Cycling grants scoring
            season:
              slug: GhIjKlMn
              link: https://api.eu.cr4ce.com/season/GhIjKlMn
              name:
                en_GB: '2026'
            slug: MnOpQrSt
            start_date: '2025-03-07 08:43:00'
            type: reviewer
            updated: '2026-04-08T15:24:34Z'
        first_page_url: https://api.eu.cr4ce.com/round?per_page=100&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.eu.cr4ce.com/round?per_page=100&page=1
        next_page_url: ''
        path: https://api.eu.cr4ce.com/round
        per_page: 100
        prev_page_url: ''
        to: 29
        total: 29
    ScoreSet:
      type: object
      properties:
        created:
          type: string
          format: date-time
        form:
          type: string
        mode:
          type: string
          enum:
            - qualifying
            - top_pick
            - scoring
            - voting
            - gallery
        name:
          type: object
          description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
          additionalProperties:
            type: string
        order:
          type:
            - integer
            - 'null'
        season:
          type: object
          properties:
            slug:
              type: string
            link:
              type: string
              format: uri
            name:
              type: object
              description: Map keyed by locale code (for example, `en_GB` or `fr_FR`), with the translated string as the value.
              additionalProperties:
                type: string
        slug:
          type: string
        updated:
          type: string
          format: date-time
      example:
        created: '2026-03-19T08:05:41Z'
        form: AbCdEfGh
        mode: top_pick
        name:
          en_GB: Top pick test
        order: null
        season:
          slug: CdEfGhIj
          link: https://api.au.cr4ce.com/season/CdEfGhIj
          name:
            en_GB: '2026'
        slug: EfGhIjKl
        updated: '2026-06-03T06:50:18Z'
    ScoreSetList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/ScoreSet'
      example:
        current_page: 1
        data:
          - created: '2026-06-24T13:43:50Z'
            form: AbCdEfGh
            mode: scoring
            name:
              en_GB: Assignments view testing
            order: null
            season:
              slug: CdEfGhIj
              link: https://api.eu.cr4ce.com/season/CdEfGhIj
              name:
                en_GB: '2026'
            slug: EfGhIjKl
            updated: '2026-06-24T13:43:50Z'
          - created: '2025-04-02T16:00:58Z'
            form: AbCdEfGh
            mode: voting
            name:
              en_GB: Voting
            order: null
            season:
              slug: CdEfGhIj
              link: https://api.eu.cr4ce.com/season/CdEfGhIj
              name:
                en_GB: '2026'
            slug: GhIjKlMn
            updated: '2026-06-23T15:22:33Z'
        first_page_url: https://api.eu.cr4ce.com/score-set?per_page=100&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.eu.cr4ce.com/score-set?per_page=100&page=1
        next_page_url: ''
        path: https://api.eu.cr4ce.com/score-set
        per_page: 100
        prev_page_url: ''
        to: 21
        total: 21
    Season:
      type: object
      properties:
        created:
          type: string
          format: date-time
        name:
          type: object
          description: Map keyed by locale code (for example, `en_GB` or `fr_FR`).
          additionalProperties:
            type: string
        slug:
          type: string
        status:
          type: string
          description: Lifecycle status of the season.
          enum:
            - draft
            - active
            - archived
            - destroyed
        updated:
          type: string
          format: date-time
      example:
        created: '2023-01-16T10:01:11Z'
        name:
          en_GB: '2026'
        slug: AbCdEfGh
        status: active
        updated: '2026-06-03T06:50:16Z'
    SeasonList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Season'
      example:
        current_page: 1
        data:
          - created: '2023-01-16T10:01:11Z'
            name:
              en_GB: '2026'
            slug: AbCdEfGh
            status: active
            updated: '2026-06-03T06:50:16Z'
          - created: '2026-06-02T14:11:32Z'
            name:
              en_GB: copy test 2 june
            slug: CdEfGhIj
            status: archived
            updated: '2026-06-03T06:50:16Z'
        first_page_url: https://api.eu.cr4ce.com/season?per_page=100&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.eu.cr4ce.com/season?per_page=100&page=1
        next_page_url: ''
        path: https://api.eu.cr4ce.com/season
        per_page: 100
        prev_page_url: ''
        to: 8
        total: 8
    Tax:
      type: object
      properties:
        country:
          type: string
          description: Country the tax applies to.
        country_name:
          type: string
          description: Localised name of the country the tax applies to.
        created:
          type: string
          format: date-time
        name:
          type:
            - string
            - 'null'
          description: Name of the tax.
        rate:
          type: number
          format: float
          description: Tax rate as a percentage.
        region:
          type:
            - string
            - 'null'
          description: Region code the tax applies to.
        region_name:
          type:
            - string
            - 'null'
          description: Localised name of the region the tax applies to.
        slug:
          type: string
        term:
          type: string
          description: Tax term label, such as GST or VAT.
        updated:
          type: string
          format: date-time
      example:
        country: GB
        country_name: United Kingdom
        created: '2024-12-09T08:36:57Z'
        name: VAT
        rate: 20
        region: null
        region_name: null
        slug: AbCdEfGh
        term: VAT
        updated: '2025-05-19T12:35:40Z'
    TaxList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Tax'
      example:
        current_page: 1
        data:
          - country: GB
            country_name: United Kingdom
            created: '2024-12-09T08:36:57Z'
            name: VAT
            rate: 20
            region: null
            region_name: null
            slug: AbCdEfGh
            term: VAT
            updated: '2025-05-19T12:35:40Z'
          - country: US
            country_name: United States of America
            created: '2026-04-23T10:41:29Z'
            name: Alaska
            rate: 10
            region: AK
            region_name: Alaska
            slug: CdEfGhIj
            term: Tax
            updated: '2026-04-23T10:41:29Z'
        first_page_url: https://api.au.cr4ce.com/tax?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/tax?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/tax
        per_page: 10
        prev_page_url: ''
        to: 2
        total: 2
    UserSummary:
      type: object
      description: Core user fields shared by the list and single-user responses.
      properties:
        analytics_cookies:
          type: boolean
          description: Specifies whether the user accepted analytics cookies.
        broadcast_emails:
          type: boolean
          description: Specifies whether the user accepted broadcast emails.
        comments:
          type: string
          description: Administrative notes recorded against the user, formatted for export.
        confirmation:
          type: string
          description: Account confirmation status of the user, such as `Confirmed` or `Invited`.
        confirmed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Date and time when the user confirmed the account, null until confirmed.
        created_at:
          type: string
          format: date-time
          description: Date and time when the user account was created.
        created_by:
          type: string
          description: Method by which the user account was created, such as `manual` or `registration`.
        email:
          type:
            - string
            - 'null'
          format: email
          description: Email address of the user, null if not recorded.
        first_name:
          type: string
          description: First name of the user.
        language:
          type: object
          description: Preferred language of the user.
          properties:
            code:
              type: string
              description: Locale code of the language, such as `en_GB`.
            language:
              type: string
              description: Display name of the language, such as `English (United Kingdom)`.
        last_name:
          type: string
          description: Last name of the user.
        marketing_cookies:
          type: boolean
          description: Specifies whether the user accepted marketing cookies.
        mobile:
          type: string
          description: Mobile phone number of the user.
        name:
          type: string
          description: Full name of the user.
        necessary_cookies:
          type: boolean
          description: Specifies whether the user accepted necessary cookies.
        notification_emails:
          type: boolean
          description: Specifies whether the user accepted notification emails.
        notification_sms:
          type: boolean
          description: Specifies whether the user accepted notification text messages.
        roles:
          type: array
          description: Roles assigned to the user within the account.
          items:
            type: object
            properties:
              slug:
                type: string
                description: URL-safe identifier of the role.
              link:
                type: string
                format: uri
                description: URL of the role resource.
              name:
                type: object
                description: Name of the role, keyed by locale code.
                additionalProperties:
                  type: string
        slug:
          type: string
          description: URL-safe identifier of the user.
        updated:
          type: string
          format: date-time
          description: Date and time when the user account was last updated.
    UserList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/UserSummary'
      example:
        current_page: 1
        data:
          - analytics_cookies: true
            broadcast_emails: true
            comments: ''
            confirmation: Confirmed
            confirmed_at: '2025-08-05T00:00:00Z'
            created_at: '2025-08-05T09:00:58Z'
            created_by: invited
            email: john.doe@example.com
            first_name: John
            language:
              code: en_GB
              language: English (United Kingdom)
            last_name: Doe
            marketing_cookies: true
            mobile: ''
            name: John Doe
            necessary_cookies: true
            notification_emails: true
            notification_sms: true
            roles:
              - slug: AbCdEfGh
                link: https://api.eu.cr4ce.com/role/AbCdEfGh
                name:
                  en_GB: Applicant
            slug: KlMnOpQr
            updated: '2026-06-28T08:03:58Z'
          - analytics_cookies: false
            broadcast_emails: false
            comments: ''
            confirmation: Confirmed
            confirmed_at: '2025-04-01T00:00:00Z'
            created_at: '2025-04-23T12:36:32Z'
            created_by: manual
            email: jane.roe@example.com
            first_name: Jane
            language:
              code: en_GB
              language: English (United Kingdom)
            last_name: Roe
            marketing_cookies: false
            mobile: ''
            name: Jane Roe
            necessary_cookies: true
            notification_emails: false
            notification_sms: false
            roles:
              - slug: AbCdEfGh
                link: https://api.eu.cr4ce.com/role/AbCdEfGh
                name:
                  en_GB: Applicant
              - slug: CdEfGhIj
                link: https://api.eu.cr4ce.com/role/CdEfGhIj
                name:
                  en_GB: Program manager
            slug: MnOpQrSt
            updated: '2026-06-25T15:39:46Z'
        first_page_url: https://api.eu.cr4ce.com/user?per_page=100&page=1
        from: 1
        last_page: 5
        last_page_url: https://api.eu.cr4ce.com/user?per_page=100&page=5
        next_page_url: https://api.eu.cr4ce.com/user?per_page=100&page=2
        path: https://api.eu.cr4ce.com/user
        per_page: 100
        prev_page_url: ''
        to: 100
        total: 470
    UserDetail:
      type: object
      description: Detailed user fields returned only for a single user.
      properties:
        preferences:
          type: object
          description: Notification preferences selected by the user.
          properties:
            broadcast_emails:
              type: boolean
              description: Specifies whether the user receives broadcast emails.
            notification_emails:
              type: boolean
              description: Specifies whether the user receives notification emails.
            notification_sms:
              type: boolean
              description: Specifies whether the user receives notification text messages.
        social_sharing:
          type: boolean
          description: Specifies whether the user opted in to social sharing.
        user_fields:
          type: array
          description: Custom field responses captured on the user profile.
          items:
            type: object
            properties:
              slug:
                type: string
                description: URL-safe identifier of the field.
              link:
                type: string
                format: uri
                description: URL of the field resource.
              label:
                type: object
                description: Label of the field, keyed by locale code.
                additionalProperties:
                  type: string
              title:
                type: object
                description: Plain-text title of the field, keyed by locale code.
                additionalProperties:
                  type: string
              value:
                type: string
                description: Value submitted for the field.
              token:
                type: string
                description: File token for the uploaded file, present on file fields.
              translated:
                type: object
                description: Translated value of the field, keyed by locale code.
                additionalProperties:
                  type: string
    User:
      allOf:
        - $ref: '#/components/schemas/UserSummary'
        - $ref: '#/components/schemas/UserDetail'
      example:
        analytics_cookies: true
        broadcast_emails: true
        comments: 'Jane Doe (2025-05-21T15:25:39+00:00): User comment'
        confirmation: Confirmed
        confirmed_at: '2018-04-17T00:00:00Z'
        created_at: '2024-06-24T06:34:30Z'
        created_by: manual
        email: jane.doe@example.com
        first_name: Jane
        language:
          code: en_GB
          language: English (United Kingdom)
        last_name: Doe
        marketing_cookies: true
        mobile: ''
        name: Jane Doe
        necessary_cookies: true
        notification_emails: true
        notification_sms: true
        preferences:
          broadcast_emails: true
          notification_emails: true
          notification_sms: true
        roles:
          - slug: AbCdEfGh
            link: https://api.eu.cr4ce.com/role/AbCdEfGh
            name:
              en_GB: Applicant
          - slug: CdEfGhIj
            link: https://api.eu.cr4ce.com/role/CdEfGhIj
            name:
              en_GB: Program manager
        slug: EfGhIjKl
        social_sharing: true
        updated: '2026-06-26T07:50:46Z'
        user_fields:
          - slug: GhIjKlMn
            link: https://api.eu.cr4ce.com/field/GhIjKlMn
            label:
              en_GB: <p>Title</p>
            title:
              en_GB: Title
            value: Ms
            translated:
              en_GB: ''
          - slug: IjKlMnOp
            link: https://api.eu.cr4ce.com/field/IjKlMnOp
            label:
              en_GB: <p>user file upload</p>
            title:
              en_GB: user file upload
            value: https://api.eu.cr4ce.com/file/
            token: ''
            translated:
              en_GB: ''
    AuthToken:
      type: object
      title: AuthToken
      description: Single-use SSO auth token for logging the user into the app via SSO.
      properties:
        auth_token:
          type: string
          description: Opaque SSO auth token for the user.
      example:
        auth_token: AbCdEfGhIjKlMnOpQrStUvWxYz012345
    Webhook:
      type: object
      properties:
        events:
          type: array
          description: Subscription events that trigger this webhook.
          items:
            type: string
        fields:
          type: array
          description: Fields included in the webhook payload.
          items:
            type: object
            properties:
              slug:
                type: string
                description: Short URL-safe identifier for the field.
              link:
                type: string
                format: uri
                description: Canonical URL for the field resource.
              title:
                type: object
                description: Plain-text title of the field, as a map keyed by locale code (for example, `en_GB` or `fr_FR`).
                additionalProperties:
                  type: string
        form:
          type:
            - object
            - 'null'
          description: Form the webhook is scoped to, or `null` if not scoped to a specific form.
          properties:
            slug:
              type: string
              description: Short URL-safe identifier for the form.
            link:
              type: string
              format: uri
              description: Canonical URL for the form resource.
            name:
              type: string
              description: Name of the form.
        method:
          type: string
          description: HTTP method used to call the webhook URL.
          enum:
            - get
            - post
        name:
          type: string
          description: Name of the webhook.
        slug:
          type: string
          description: Slug of the webhook.
        signing_key:
          type: string
          description: Key used to sign outgoing webhook requests.
        url:
          type: string
          format: uri
          description: URL that receives the webhook payload.
        created:
          type: string
          format: date-time
          description: Date and time when the webhook was created.
        updated:
          type: string
          format: date-time
          description: Date and time when the webhook was last updated.
      example:
        created: '2025-12-21T23:11:20Z'
        events:
          - application_created
          - application_submitted
        fields: []
        form: null
        method: post
        name: Application notifications
        signing_key: REDACTED
        slug: AbCdEfGh
        updated: '2025-12-21T23:11:20Z'
        url: https://example.com/webhooks
    WebhookList:
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Webhook'
      example:
        current_page: 1
        data:
          - created: '2025-12-21T23:11:20Z'
            events:
              - application_created
              - application_submitted
            fields: []
            form: null
            method: post
            name: Application notifications
            signing_key: REDACTED
            slug: AbCdEfGh
            updated: '2025-12-21T23:11:20Z'
            url: https://example.com/webhooks
          - created: '2026-04-23T10:41:29Z'
            events:
              - application_updated
            fields: []
            form: null
            method: get
            name: Application update notifications
            signing_key: REDACTED
            slug: CdEfGhIj
            updated: '2026-04-23T10:41:29Z'
            url: https://example.com/webhooks/updates
        first_page_url: https://api.au.cr4ce.com/webhook?per_page=10&page=1
        from: 1
        last_page: 1
        last_page_url: https://api.au.cr4ce.com/webhook?per_page=10&page=1
        next_page_url: ''
        path: https://api.au.cr4ce.com/webhook
        per_page: 10
        prev_page_url: ''
        to: 2
        total: 2
  responses:
    BadRequest:
      description: 'Request was rejected before the endpoint could process it. Common causes: invalid `Accept` header, unsupported `x-api-language` code, empty request body on `POST` / `PUT`, invalid JSON in the request body, or an invalid slug format in a path parameter.'
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequest'
        application/xml:
          schema:
            $ref: '#/components/schemas/BadRequest'
    Unauthorized:
      description: Missing `x-api-key` header.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
        application/xml:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    Forbidden:
      description: |-
        Authenticated request denied. Common causes: invalid or unknown
        API key, suspended account, or `api` feature not enabled for
        the account.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Forbidden'
        application/xml:
          schema:
            $ref: '#/components/schemas/Forbidden'
    TooManyRequests:
      description: Rate limit of 60 requests per minute exceeded.
      headers:
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TooManyRequests'
        application/xml:
          schema:
            $ref: '#/components/schemas/TooManyRequests'
    ServiceUnavailable:
      description: Service is temporarily unavailable due to regional maintenance.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                description: Human-readable maintenance status.
            example:
              status: Maintenance in progress
        application/xml:
          schema:
            type: object
            properties:
              status:
                type: string
                description: Human-readable maintenance status.
            example:
              status: Maintenance in progress
    UnprocessableEntity:
      description: |-
        Request was syntactically valid but could not be processed.

        Returned in two scenarios:

        - **Field-level validation failure** — one or more request fields violated the endpoint's validation rules. The body includes an `errors` map keyed by field name with one or more validation messages each.
        - **Resource-state precondition failure** — the request fields were all valid, but the target resource was in a state that does not permit the requested operation. The body carries only `message` and `status_code`; no `errors` map.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnprocessableEntity'
        application/xml:
          schema:
            $ref: '#/components/schemas/UnprocessableEntity'
    NotFound:
      description: Resource identified by the path slug does not exist. Returned when the slug is well-formed but no record matches it.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFound'
        application/xml:
          schema:
            $ref: '#/components/schemas/NotFound'
  requestBodies:
    ReviewTaskCreate:
      description: Action task creation payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - action_stage
              - application
            properties:
              action_stage:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the action stage.
                  Action stages reviewed by referees cannot be used to create action tasks.
              application:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the application.
      required: true
    AllocationPaymentCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - allocation
              - amount
              - status
            properties:
              allocation:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the allocation the payment is drawn against.
              amount:
                type: number
                description: |-
                  Amount of the payment, in the currency of the allocation's fund.

                  Cannot exceed the allocation's unscheduled balance.
              date_due:
                type:
                  - string
                  - 'null'
                description: |-
                  Date the payment is due.

                  Accepts `Y-m-d` or `Y-m-d\TH:i:s\Z` format.
              date_paid:
                type:
                  - string
                  - 'null'
                description: |-
                  Date the payment was made.

                  Accepts `Y-m-d` or `Y-m-d\TH:i:s\Z` format. Required when `status` is `paid`.
              external_id:
                type:
                  - string
                  - 'null'
                maxLength: 255
                description: External identifier of the payment, used to reconcile it with downstream systems.
              payment_method:
                type:
                  - string
                  - 'null'
                pattern: ^[A-Za-z]{8}$
                description: Slug of the payment method.
              reference:
                type:
                  - string
                  - 'null'
                maxLength: 32
                description: Free-text reference for the payment.
              status:
                type: string
                description: Lifecycle status of the payment.
                enum:
                  - failed
                  - failed_permanently
                  - paid
                  - processing
                  - scheduled
      description: Allocation payment creation payload.
      required: true
    AllocationPaymentUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              amount:
                type: number
                description: |-
                  Amount of the payment, in the currency of the allocation's fund.

                  Cannot exceed the allocation's unscheduled balance, with the payment's current amount added back.
              date_due:
                type:
                  - string
                  - 'null'
                description: |-
                  Date the payment is due.

                  Accepts `Y-m-d` or `Y-m-d\TH:i:s\Z` format.
              date_paid:
                type:
                  - string
                  - 'null'
                description: |-
                  Date the payment was made.

                  Accepts `Y-m-d` or `Y-m-d\TH:i:s\Z` format. Required when `status` is `paid`.
              external_id:
                type:
                  - string
                  - 'null'
                maxLength: 255
                description: External identifier of the payment, used to reconcile it with downstream systems.
              payment_method:
                type:
                  - string
                  - 'null'
                pattern: ^[A-Za-z]{8}$
                description: Slug of the payment method.
              reference:
                type:
                  - string
                  - 'null'
                maxLength: 32
                description: Free-text reference for the payment.
              status:
                type: string
                description: Lifecycle status of the payment.
                enum:
                  - failed
                  - failed_permanently
                  - paid
                  - processing
                  - scheduled
      description: Allocation payment update payload.
      required: true
    AllocationPaymentComment:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - allocation_payment
              - comment
            properties:
              allocation_payment:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the allocation payment to comment on.
              comment:
                type: string
                maxLength: 255
                description: Body of the comment.
      description: Allocation payment comment payload.
      required: true
    AllocationCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - amount
              - application
              - fund
            properties:
              amount:
                type: number
                description: |-
                  Amount to allocate to the application, in the fund's currency.

                  Cannot exceed the fund's available budget.
              application:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the application to allocate funds to.
              fund:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the fund to draw the allocation from.
      description: Allocation creation payload.
      required: true
    AllocationUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              amount:
                type: number
                description: |-
                  New amount to allocate, in the fund's currency.

                  Cannot exceed the fund's available budget.
              fund:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the fund to draw the allocation from.
      description: |-
        Allocation update payload.

        The application cannot be reassigned. To move an allocation to a different application, delete it and create a new one.
      required: true
    EntryCreate:
      description: Application creation payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - category
              - applicant
              - season
              - title
            properties:
              category:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the category.
              chapter:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the chapter. If omitted, defaults to the first chapter of the season.
              applicant:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the applicant.
              season:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the season.
              title:
                type: string
                description: Title of the application.
              form:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the form.
              status:
                type: string
                description: Application status.
                enum:
                  - submitted
                  - in_progress
                  - resubmission_required
              moderation_status:
                type: string
                description: Moderation status of the application.
                enum:
                  - approved
                  - undecided
                  - rejected
              application_fields:
                type: object
                description: Application field values keyed by field slug. Each key must be a valid eight-letter field slug. The value type depends on the field type.
                additionalProperties: {}
              custom_deadline:
                type: string
                pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) ([01][0-9]|2[0-3]):[0-5][0-9]$
                description: Custom deadline in `yyyy-mm-dd hh:mm` format.
              grant_status:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the grant status. Available when the grants feature is enabled.
              grant_end_date:
                type: string
                format: date
                description: Date when the grant ends. Available when the grants feature is enabled.
      required: true
    EntryUpdate:
      description: Application update payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              category:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the category.
              chapter:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the chapter.
              applicant:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the applicant.
              title:
                type: string
                description: Title of the application.
              status:
                type: string
                description: Application status.
                enum:
                  - submitted
                  - in_progress
                  - resubmission_required
                  - resubmitted
              moderation_status:
                type: string
                description: Moderation status of the application.
                enum:
                  - approved
                  - undecided
                  - rejected
              application_fields:
                type: object
                description: Application field values keyed by field slug. Each key must be a valid eight-letter field slug. The value type depends on the field type.
                additionalProperties: {}
              custom_deadline:
                type: string
                pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) ([01][0-9]|2[0-3]):[0-5][0-9]$
                description: Custom deadline in `yyyy-mm-dd hh:mm` format.
              grant_status:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the grant status. Available when the grants feature is enabled.
              grant_end_date:
                type: string
                format: date
                description: Date when the grant ends. Available when the grants feature is enabled.
      required: true
    FileUpload:
      content:
        application/json:
          schema:
            type: object
            required:
              - filename
              - data
            properties:
              filename:
                type: string
                description: Original filename of the uploaded file, including the extension.
              data:
                type: string
                format: byte
                description: |-
                  Base64-encoded contents of the file.

                  The encoded payload must round-trip cleanly through standard base64 decoding; payloads with stray characters, incorrect padding, or other malformed encoding are rejected.
            example:
              filename: example.pdf
              data: aGVsbG8gd29ybGQ=
      description: |-
        File payload for an upload operation.

        `filename` and `data` are required.
    EntryCategoryUpdate:
      description: Application category update payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - category
            properties:
              category:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the category.
      required: true
    EntryChapterUpdate:
      description: Application chapter update payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - chapter
            properties:
              chapter:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the chapter.
      required: true
    EntryFieldUpdate:
      description: Application field update payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - value
            properties:
              value:
                description: New value for the field. The type depends on the field type.
      required: true
    EntryTitleUpdate:
      description: Application title update payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - title
            properties:
              title:
                type: string
                maxLength: 255
                description: New title of the application.
      required: true
    AttachmentFieldUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - value
            properties:
              value:
                description: |-
                  New value for the attachment field identified by `field_slug`. The accepted value depends on the type and configuration of the field.

                  Use a string for text fields, a number for numeric fields, an ISO 8601 date for date fields, and an option slug for choice fields. A value outside the option set of a choice field returns a `422` response. For file-type fields, use an object containing the base64-encoded file data and a filename.
      description: Attachment field update payload.
      required: true
    ContributorFieldUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - value
            properties:
              value:
                description: |-
                  New value for the contributor field identified by `field_slug`. The accepted value depends on the type and configuration of the field.

                  Use a string for text fields, a number for numeric fields, an ISO 8601 date for date fields, and an option slug for choice fields. A value outside the option set of a choice field returns a `422` response. For file-type fields, use an object containing the base64-encoded file data and a filename.
      description: Contributor field update payload.
      required: true
    AssignmentCreate:
      content:
        application/json:
          schema:
            type: object
            title: Assignment creation request
            description: |-
              Inputs for creating assignments in bulk.

              One assignment is created for each pairing of an application from `applications` with a reviewer from `reviewers` under `score_set`, and every resulting assignment is linked to all rounds listed in `rounds`. Existing assignments for the same application, reviewer, and score set are updated in place rather than duplicated.
            required:
              - score_set
              - applications
              - reviewers
              - rounds
            properties:
              score_set:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the score set to assign under.

                  Its current season must be either active or draft. Applications and rounds must belong to the same form as this score set.
              applications:
                type: array
                description: |-
                  Slugs of the applications to include.

                  Each application must belong to the same form as `score_set`.
                items:
                  type: string
                  pattern: ^[A-Za-z]{8}$
              reviewers:
                type: array
                description: |-
                  Slugs of the users to assign as reviewers.

                  Each user must hold the reviewer role for the account.
                items:
                  type: string
                  pattern: ^[A-Za-z]{8}$
              rounds:
                type: array
                description: |-
                  Slugs of the judging rounds to link the assignments to.

                  Each round must be a judging round on the same form as `score_set`.
                items:
                  type: string
                  pattern: ^[A-Za-z]{8}$
      description: |-
        Inputs for the assignment creation request.

        The request is processed asynchronously: the response is `202 Accepted` with an empty body. Created assignments become available via `GET /assignment` once processing completes.
      required: true
    EntryAssignmentRecusal:
      content:
        application/json:
          schema:
            type: object
            required:
              - reviewer
            properties:
              reviewer:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the reviewer to recuse.

                  Must be an existing user. The recusal is recorded even when the reviewer has no current assignment to the application, and prevents the reviewer being assigned in the future within the affected score set scope.
              score_set:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the score set to scope the recusal to.

                  When omitted, the recusal applies to every score set the reviewer has assignments under for this application and prevents future assignment across all of them. When supplied, the scope is limited to the named score set.
      description: |-
        Recusal payload identifying the reviewer and, optionally, the score set scope.

        Shared by the recuse and unrecuse operations. When `score_set` is omitted the operation acts across every score set associated with the reviewer's assignments for the application; otherwise it is limited to the named score set.
      required: true
    AttachmentUpdate:
      content:
        application/json:
          schema:
            type: object
            properties:
              attachment_fields:
                type: object
                description: |-
                  Values for the form fields captured against this attachment, keyed by field slug.

                  Each value must conform to the type of the corresponding field on the parent attachments tab; for example, a text field accepts a string, a choice field accepts the slug of one of its options, and a number field accepts a numeric value.

                  Field slugs that do not exist on the parent tab are rejected.
                additionalProperties: {}
              order:
                type: integer
                description: Position of the attachment within its tab. Lower values sort earlier.
              tab:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the tab to move the attachment to.

                  Must reference a tab whose type is `Attachments`; tabs of other types are rejected.
      description: |-
        Fields to update on an existing attachment.

        Every property is optional; only properties that are supplied are written.
      required: true
    AttachmentUpload:
      content:
        application/json:
          schema:
            type: object
            required:
              - filename
              - data
              - order
            properties:
              filename:
                type: string
                description: Original filename of the uploaded file, including the extension.
              data:
                type: string
                format: byte
                description: |-
                  Base64-encoded contents of the file.

                  The encoded payload must round-trip cleanly through standard base64 decoding; payloads with stray characters, incorrect padding, or other malformed encoding are rejected.
              order:
                type: integer
                description: Position of the attachment within its tab. Lower values sort earlier.
              attachment_fields:
                type: object
                description: |-
                  Values for the form fields captured against this attachment, keyed by field slug.

                  Each value must conform to the type of the corresponding field on the parent attachments tab:

                  - `text`, `textarea`, `email`, `url`, `phone`, `ai` — string.
                  - `numeric` — number.
                  - `currency` — string holding a decimal value, for example `"1234.56"`.
                  - `checkbox` — boolean (`true`/`false`; `1` and `0` are also accepted).
                  - `radio`, `drop-down-list` — string matching one of the defined option keys for the field (case-insensitive).
                  - `checkboxlist` — array of option keys, or a comma-separated string such as `"opt1,opt2"`.
                  - `country` — ISO 3166 alpha-2 country code; lower-case codes are accepted and stored upper-cased.
                  - `date` — `YYYY-MM-DD` string or an object such as `{date: "2026-06-16"}`; the bare string form is wrapped server-side into the object form.
                  - `datetime` — `YYYY-MM-DD HH:MM` string or an object such as `{date: "2026-06-16 14:30"}`; same wrapping behaviour as `date`.
                  - `time` — `HH:MM` string.

                  Field slugs that do not exist on the parent tab are rejected. Fields marked as required on the parent tab must be supplied; omitting them returns a 422.

                  `formula` fields are computed server-side and cannot be set through this property. `file` fields are not settable here; upload files through `POST /entry/{entry_slug}/upload/{field_slug}` instead. `table` and `lookup` field types are not handled by this property; consult their dedicated endpoints if your tab uses them.
                additionalProperties: {}
            example:
              filename: hello.xls
              data: aGVsbG8gd29ybGQ=
              order: 1
              attachment_fields:
                text-slug: Some short text
                numeric-slug: 42
                checkbox-slug: true
                radio-slug: option-key-1
                checkboxlist-slug:
                  - option-key-1
                  - option-key-2
                country-slug: AU
                date-slug: '2026-06-16'
      description: |-
        File and metadata for a new attachment on the specified application tab.

        `filename`, `data`, and `order` are required. `attachment_fields` is optional and may be omitted when the parent tab has no required attachment fields.
      required: true
    CategoryCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - season
              - status
              - translated
            properties:
              season:
                type: string
                description: Slug of the season.
              status:
                type: string
                description: Active or inactive state of the category.
                enum:
                  - active
                  - inactive
              translated:
                type: object
                description: Translated category field values keyed by field name.
                additionalProperties: false
                required:
                  - name
                properties:
                  name:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  description:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  application_name_label:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  image_heading:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  packing_slip_instructions:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  shortcode:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
              chapters:
                type: array
                description: |-
                  Array of chapter slugs.

                  Each chapter must belong to the same season as `season`.
                items:
                  type: string
              divisions:
                type: integer
                minimum: 1
                description: Number of divisions.
              applicant_max_applications:
                type:
                  - integer
                  - 'null'
                minimum: 1
                description: Maximum number of applications per applicant.
              fill_application_name:
                type: boolean
                description: Specifies whether to prefill the application name when the category is selected.
              max_image_width:
                type: integer
                description: Maximum image width.
              form:
                type: string
                description: |-
                  Slug of the form.

                  The form must be valid for `season`.
              parent:
                type: string
                description: |-
                  Slug of the parent category.

                  The parent category must belong to the same season as `season`.
              promoted:
                type:
                  - integer
                  - 'null'
                enum:
                  - 0
                  - 1
                  - null
                description: |-
                  Promotion state of the category.

                  `1` when promoted, `0` when not, and `null` when no preference has been set.
              pdf_packing_slip:
                type: boolean
                description: |-
                  Specifies whether to generate a PDF packing slip.

                  Required when `translated.packing_slip_instructions` is provided.
      description: Category creation payload.
      required: true
    CategoryUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              status:
                type: string
                description: Active or inactive state of the category.
                enum:
                  - active
                  - inactive
              translated:
                type: object
                description: Translated category field values keyed by field name.
                additionalProperties: false
                properties:
                  name:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  description:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  application_name_label:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  image_heading:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  packing_slip_instructions:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  shortcode:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
              chapters:
                type: array
                description: |-
                  Array of chapter slugs.

                  Each chapter must belong to the season for the category.
                items:
                  type: string
              divisions:
                type: integer
                minimum: 1
                description: Number of divisions.
              applicant_max_applications:
                type:
                  - integer
                  - 'null'
                minimum: 1
                description: Maximum number of applications per applicant.
              fill_application_name:
                type: boolean
                description: Specifies whether to prefill the application name when the category is selected.
              locked:
                type: boolean
                description: Specifies whether the category is locked.
              max_image_width:
                type: integer
                description: Maximum image width.
              parent:
                type: string
                description: |-
                  Slug of the parent category.

                  The parent category must belong to the season for the category, and cannot be the category itself or one of its descendants.
              pdf_packing_slip:
                type: boolean
                description: |-
                  Specifies whether to generate a PDF packing slip.

                  Required when `translated.packing_slip_instructions` is provided.
      description: Category update payload.
      required: true
    CategoryUpload:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - filename
              - data
            properties:
              filename:
                type: string
                description: Original filename of the uploaded file, including the extension.
              data:
                type: string
                format: byte
                description: |-
                  Base64-encoded contents of the image file.

                  The encoded payload must round-trip cleanly through standard base64 decoding; payloads with stray characters, incorrect padding, or other malformed encoding are rejected.

                  Only image files are accepted: `gif`, `jpeg`, `jpg`, `png`, `tif`, `tiff`, `ico`, `webp`, and `avif`. The file size must not exceed the maximum file size for the account.
            example:
              filename: logo.png
              data: aGVsbG8gd29ybGQ=
      description: |-
        Image payload for the category upload.

        `filename` and `data` are required.
      required: true
    ChapterCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - season
              - status
              - translated
            properties:
              season:
                type: string
                description: Slug of the season.
              status:
                type: string
                description: One of the following values.
                enum:
                  - active
                  - inactive
              translated:
                type: object
                description: Translated chapter field values keyed by field name.
                additionalProperties: false
                properties:
                  name:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  image_heading:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
              max_image_width:
                type: integer
                description: Maximum image width.
              managers:
                type: array
                description: Array of user slugs for chapter managers.
                items:
                  type: string
      description: Chapter creation payload.
      required: true
    ChapterUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              status:
                type: string
                description: One of the following values.
                enum:
                  - active
                  - inactive
              translated:
                type: object
                description: Translated chapter field values keyed by field name.
                additionalProperties: false
                properties:
                  name:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  image_heading:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
              max_image_width:
                type: integer
                description: Maximum image width.
              managers:
                type: array
                description: Array of user slugs for chapter managers.
                items:
                  type: string
      description: Chapter update payload.
      required: true
    ChapterUpload:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - filename
              - data
            properties:
              filename:
                type: string
                description: Original filename of the uploaded file, including the extension.
              data:
                type: string
                format: byte
                description: |-
                  Base64-encoded contents of the image file.

                  The encoded payload must round-trip cleanly through standard base64 decoding; payloads with stray characters, incorrect padding, or other malformed encoding are rejected.

                  Only image files are accepted: `gif`, `jpeg`, `jpg`, `png`, `tif`, `tiff`, `ico`, `webp`, and `avif`. The file size must not exceed the maximum file size for the account.
            example:
              filename: logo.png
              data: aGVsbG8gd29ybGQ=
      description: |-
        Image payload for the chapter upload.

        `filename` and `data` are required.
      required: true
    ContributorCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - application
              - tab
            properties:
              application:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the application.
              tab:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the contributor tab.
              fields:
                type: object
                description: Contributor field values keyed by field slug.
                additionalProperties:
                  description: Value to submit for the field. The type depends on the field type — for example, a string for text fields or a boolean for checkbox fields.
      description: Contributor creation payload.
      required: true
    ContributorUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              fields:
                type: object
                description: Contributor field values keyed by field slug.
                additionalProperties:
                  description: Value to submit for the field. The type depends on the field type — for example, a string for text fields or a boolean for checkbox fields.
      description: Contributor update payload.
      required: true
    DocumentCreate:
      description: Document create payload.
      content:
        application/json:
          schema:
            type: object
            required:
              - translated
              - template
              - fileType
              - shared
              - resource
              - selected
            properties:
              translated:
                type: object
                required:
                  - name
                properties:
                  name:
                    type: object
                    description: |-
                      Name of the document.

                      Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
                    additionalProperties:
                      type: string
                  description:
                    type: object
                    description: |-
                      Description of the document.

                      Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
                    additionalProperties:
                      type: string
              template:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the document template to generate the document from.
              fileType:
                type: string
                enum:
                  - pdf
                  - word
                description: File format to generate the document in.
              shared:
                type: boolean
                description: Specifies whether the generated document is shared with the applicant.
              resource:
                type: string
                enum:
                  - user
                  - application
                  - allocation
                  - grant-report
                description: Type of resource to attach the generated documents to.
              selected:
                type: array
                minItems: 1
                description: Slugs of the resources, of the type given by `resource`, to attach the generated documents to.
                items:
                  type: string
                  pattern: ^[A-Za-z]{8}$
              notification:
                type:
                  - string
                  - 'null'
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the notification to send when the document is created.

                  Omit or set to `null` to send no notification.
      required: true
    FieldCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - type
              - tab
              - translated
            properties:
              type:
                type: string
                description: Type of the field.
                enum:
                  - checkbox
                  - checkboxlist
                  - content
                  - country
                  - currency
                  - date
                  - datetime
                  - drop-down-list
                  - email
                  - file
                  - lookup
                  - numeric
                  - phone
                  - radio
                  - table
                  - text
                  - textarea
                  - time
                  - url
              tab:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: Slug of the tab the field belongs to.
              form:
                type: string
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the form the field belongs to.

                  The form must be valid for the active season and the field type.
              currency:
                type: string
                description: |-
                  Currency code.

                  Required when `type` is `currency`.
              translated:
                type: object
                description: Translated field values keyed by field name.
                additionalProperties: false
                required:
                  - title
                properties:
                  title:
                    type: object
                    description: |-
                      Field title, keyed by language code.

                      A value for the account default language is required.
                    additionalProperties:
                      type: string
                  help_text:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  hint_text:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
      description: Field creation payload.
      required: true
    FundCreate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - budget
              - currency
              - translated
            properties:
              budget:
                type: number
                description: Total budget of the fund, in the fund's currency.
              currency:
                type: string
                description: ISO 4217 currency code of the fund's amounts.
              translated:
                type: object
                description: Translated fund field values keyed by field name.
                additionalProperties: false
                properties:
                  description:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  name:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
      description: Fund creation payload.
      required: true
    FundUpdate:
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              budget:
                type: number
                description: Total budget of the fund, in the fund's currency.
              currency:
                type: string
                description: ISO 4217 currency code of the fund's amounts.
              translated:
                type: object
                description: Translated fund field values keyed by field name.
                additionalProperties: false
                properties:
                  description:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
                  name:
                    type: object
                    description: Values keyed by existing and enabled language code.
                    additionalProperties:
                      type: string
      description: Fund update payload.
      required: true
    UserCreate:
      description: User create payload.
      content:
        application/json:
          schema:
            type: object
            required:
              - first_name
              - last_name
              - password
            anyOf:
              - required:
                  - email
              - required:
                  - mobile
            properties:
              first_name:
                type: string
                description: User's first name.
              last_name:
                type: string
                description: User's last name.
              password:
                type: string
                description: Password for the new user. The minimum length and complexity requirements are configured per account, so a value accepted on one account may be rejected on another.
              email:
                type: string
                format: email
                description: User's email address. Required if `mobile` is not set.
              mobile:
                type: string
                description: User's mobile number in E.164 international format, such as `+14155552671`. Required if `email` is not set.
              roles:
                type: array
                description: Role slugs to assign to the user. If omitted or empty, the default role for the account is assigned instead, so the user is never left without a role.
                items:
                  type: string
              preferences:
                type: object
                description: User notification preferences.
                properties:
                  broadcast_emails:
                    type: boolean
                    description: Specifies whether the user receives broadcast emails.
                  notification_emails:
                    type: boolean
                    description: Specifies whether the user receives notification emails.
                  notification_sms:
                    type: boolean
                    description: Specifies whether the user receives notification text messages.
              user_fields:
                type: object
                description: 'User field values, keyed by field slug. For example, `{ "fJkIjGmB": "Test value" }`. Single-value fields take a string; multi-value fields, such as checkbox or multi-select, take an array of strings.'
                additionalProperties:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
    UserUpdate:
      description: User update payload.
      content:
        application/json:
          schema:
            type: object
            properties:
              first_name:
                type: string
                description: User's first name.
              last_name:
                type: string
                description: User's last name.
              password:
                type: string
                description: New password for the user. The minimum length and complexity requirements are configured per account. A user who belongs to more than one account cannot have their password changed through this endpoint. If the user owns an account, only that same user can change the password.
              email:
                type: string
                format: email
                description: User's email address. Must be unique across all users; the request is rejected if another user already uses it. A user who belongs to more than one account cannot have their email address changed through this endpoint. If the user owns an account, only that same user can change the email address.
              mobile:
                type: string
                description: User's mobile number in E.164 international format, such as `+14155552671`. Must be unique across all users; the request is rejected if another user already uses it. A user who belongs to more than one account cannot have their mobile number changed through this endpoint. If the user owns an account, only that same user can change the mobile number.
              roles:
                type: array
                description: Array of role slugs.
                items:
                  type: string
              preferences:
                type: object
                description: User notification preferences.
                properties:
                  broadcast_emails:
                    type: boolean
                  notification_emails:
                    type: boolean
                  notification_sms:
                    type: boolean
              cookies:
                type: object
                description: Cookie consent preferences. Applied only on accounts where cookie consent is enabled.
                properties:
                  analytics_cookies:
                    type: boolean
                    description: Specifies whether the user consents to analytics cookies.
                  marketing_cookies:
                    type: boolean
                    description: Specifies whether the user consents to marketing cookies.
                  necessary_cookies:
                    type: boolean
                    description: Specifies whether the user consents to necessary cookies.
              user_fields:
                type: object
                description: 'User field values, keyed by field slug. For example, `{ "fJkIjGmB": "Test value" }`.'
                additionalProperties:
                  type: string
    WebhookCreate:
      description: Webhook create payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - method
              - name
              - url
              - events
            properties:
              method:
                type: string
                description: |-
                  HTTP method used to call the webhook URL.

                  Values are case-sensitive.
                enum:
                  - get
                  - post
              name:
                type: string
                description: Name of the webhook.
              url:
                type: string
                format: uri
                description: URL that receives the webhook payload.
              signing_key:
                type: string
                pattern: ^[A-Za-z0-9]+$
                maxLength: 128
                description: |-
                  Key used to sign outgoing webhook requests so the receiver can validate the payload. Must be alphanumeric (`A`–`Z`, `a`–`z`, `0`–`9`).

                  If omitted, the account's existing webhook signing key is reused, or a new key is generated when the account has none. Supply a unique key to isolate each receiver's trust boundary.
              notification_emails:
                description: Email addresses that receive webhook delivery-failure notifications. Accepts a single address or multiple comma-separated addresses as a string.
                type: string
              form:
                type:
                  - string
                  - 'null'
                pattern: ^[A-Za-z]{8}$
                description: |-
                  Slug of the form to scope the webhook to. When set, the webhook only fires for events on that form. Omit or set to `null` for an account-wide webhook.

                  **Constraint:** only accepted when `field_value_updated` is among the `events` array. Sending `form` without `field_value_updated` in the events list returns a `422` validation error.
              fields:
                type: array
                description: Slugs of the fields to include in the webhook payload.
                items:
                  type: string
                  pattern: ^[A-Za-z]{8}$
              events:
                type: array
                minItems: 1
                description: Subscription events that trigger this webhook. For example, `["application_created", "application_submitted"]`.
                items:
                  type: string
                  enum:
                    - allocation_created
                    - allocation_payment_created
                    - allocation_payment_deleted
                    - allocation_payment_status_changed
                    - allocation_payment_updated
                    - application_category_changed
                    - application_chapter_changed
                    - application_copied
                    - application_created
                    - application_deleted
                    - application_eligible
                    - application_ineligible
                    - application_moderated
                    - application_resubmitted
                    - application_submitted
                    - application_tagged
                    - application_updated
                    - assignment_completed
                    - assignment_created
                    - collaborator_invited
                    - document_created
                    - document_deleted
                    - document_updated
                    - field_value_updated
                    - grant_report_created
                    - grant_report_submitted
                    - grant_status_changed
                    - membership_registered
                    - order_payment_pending
                    - order_payment_success
                    - review_task_created
                    - review_task_submitted
                    - role_granted
                    - user_updated
      required: true
    WebhookUpdate:
      description: Webhook update payload.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              method:
                type: string
                description: |-
                  HTTP method used to call the webhook URL.

                  Values are case-sensitive.
                enum:
                  - get
                  - post
              name:
                type: string
                description: Name of the webhook.
              url:
                type: string
                format: uri
                description: URL that receives the webhook payload.
              signing_key:
                type: string
                pattern: ^[A-Za-z0-9]+$
                maxLength: 128
                description: |-
                  Key used to sign outgoing webhook requests so the receiver can validate the payload. Must be alphanumeric (`A`–`Z`, `a`–`z`, `0`–`9`).

                  Omit to keep the existing key. When supplied, it replaces the current key.
              notification_emails:
                description: Email addresses that receive webhook delivery-failure notifications. Accepts either a single address as a string, or multiple addresses as an array of strings.
                oneOf:
                  - type: string
                  - type: array
                    items:
                      type: string
              form:
                type:
                  - string
                  - 'null'
                pattern: ^[A-Za-z]{8}$
                description: Slug of the form to scope the webhook to. When set, the webhook only fires for events on that form. Omit or set to `null` for an account-wide webhook.
              fields:
                type: array
                description: Slugs of the fields to include in the webhook payload.
                items:
                  type: string
                  pattern: ^[A-Za-z]{8}$
              events:
                type: array
                minItems: 1
                description: Subscription events that trigger this webhook. For example, `["application_created", "application_submitted"]`.
                items:
                  type: string
                  enum:
                    - allocation_created
                    - allocation_payment_created
                    - allocation_payment_deleted
                    - allocation_payment_status_changed
                    - allocation_payment_updated
                    - application_category_changed
                    - application_chapter_changed
                    - application_copied
                    - application_created
                    - application_deleted
                    - application_eligible
                    - application_ineligible
                    - application_moderated
                    - application_resubmitted
                    - application_submitted
                    - application_tagged
                    - application_updated
                    - assignment_completed
                    - assignment_created
                    - collaborator_invited
                    - document_created
                    - document_deleted
                    - document_updated
                    - field_value_updated
                    - grant_report_created
                    - grant_report_submitted
                    - grant_status_changed
                    - membership_registered
                    - order_payment_pending
                    - order_payment_success
                    - review_task_created
                    - review_task_submitted
                    - role_granted
                    - user_updated
      required: true
    ApplicationWebhook:
      description: Payload delivered for application-related events.
      required: true
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Entry'
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Application created
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook. Full list of events can be found [here](/docs/additional/webhook-subscriptions).
                    example: application_created
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              event: Application created
              timestamp: '2026-08-14T09:30:00Z'
              trigger: application_created
              source: ui
    AllocationWebhook:
      description: Payload delivered for allocation-related events.
      required: true
      content:
        application/json:
          schema:
            type: object
            allOf:
              - type: object
                properties:
                  slug:
                    type: string
                    description: Unique identifier for the allocation.
                  amount:
                    type: number
                    description: Allocated amount.
                  currency:
                    type: string
                    description: Currency code.
                  paid:
                    type: number
                    description: Amount paid to date.
                  applicant:
                    type: object
                    description: Applicant information.
                  application:
                    type: object
                    description: Associated application information.
                  fund:
                    type: object
                    description: Fund information.
                  chapter:
                    type: object
                    description: Chapter information.
                  season:
                    type: object
                    description: Season information.
                  created:
                    type: string
                    format: date-time
                    description: Timestamp when the allocation was created.
                  updated:
                    type: string
                    format: date-time
                    description: Timestamp when the allocation was last updated.
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Allocation created
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook.
                    example: allocation_created
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              slug: NxlGMaaj
              amount: 1000
              currency: USD
              paid: 250
              applicant:
                slug: BwXxQawR
                link: https://api.au.cr4ce.com/user/BwXxQawR
                name: Jane Smith
                first_name: Jane
                last_name: Smith
              application:
                slug: DeqEWpwO
                id: 69146
                title: Project title
                link: https://api.au.cr4ce.com/application/DeqEWpwO
              fund:
                slug: KYEKONwe
                link: https://api.au.cr4ce.com/fund/KYEKONwe
                name:
                  en_GB: USD
              chapter:
                slug: VbaERKdP
                link: https://api.au.cr4ce.com/chapter/VbaERKdP
                name:
                  en_GB: Glenlivet
              season:
                slug: wboyrBmo
                link: https://api.au.cr4ce.com/season/wboyrBmo
                name:
                  en_GB: '2026'
              created: '2026-06-02T13:05:18Z'
              updated: '2026-06-02T13:05:18Z'
              event: Allocation created
              timestamp: '2026-08-14T09:30:00Z'
              trigger: allocation_created
              source: ui
    AllocationPaymentWebhook:
      description: Payload delivered for allocation payment-related events.
      required: true
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/AllocationPayment'
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Allocation payment created
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook.
                    example: allocation_payment_created
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              event: Allocation payment created
              timestamp: '2026-08-14T09:30:00Z'
              trigger: allocation_payment_created
              source: api
    ApplicationTaggedWebhook:
      description: Payload delivered for application-related events.
      required: true
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Entry'
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Application tagged
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook. Full list of events can be found [here](/docs/additional/webhook-subscriptions).
                    example: application_tagged
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
                  triggering_tag:
                    type: object
                    description: Tag whose addition triggered this event.
                    properties:
                      tag:
                        type: string
                        description: Text of the tag.
                      slug:
                        type: string
                        description: Short URL-safe identifier for the tag.
            example:
              event: Application tagged
              timestamp: '2026-08-14T09:30:00Z'
              trigger: application_tagged
              source: api
              triggering_tag:
                tag: shortlisted
                slug: GhIjKlMn
    AssignmentWebhook:
      description: Payload delivered for assignment-related events.
      required: true
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Assignment'
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Assignment completed
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook. Full list of events can be found [here](/docs/additional/webhook-subscriptions).
                    example: assignment_completed
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              event: Assignment completed
              timestamp: '2026-08-14T09:30:00Z'
              trigger: assignment_completed
              source: ui
    DocumentWebhook:
      description: Payload delivered for document-related events.
      required: true
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Document'
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Document created
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook. Full list of events can be found [here](/docs/additional/webhook-subscriptions).
                    example: document_created
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              event: Document created
              timestamp: '2026-08-14T09:30:00Z'
              trigger: document_created
              source: api
    UserWebhook:
      description: Payload delivered for user-related events.
      required: true
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/User'
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: User created
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook. Full list of events can be found [here](/docs/additional/webhook-subscriptions).
                    example: user_created
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              event: User created
              timestamp: '2026-08-14T09:30:00Z'
              trigger: user_created
              source: ui
    GrantReportWebhook:
      description: Payload delivered for grant report-related events.
      required: true
      content:
        application/json:
          schema:
            type: object
            allOf:
              - type: object
                properties:
                  applicant:
                    type: object
                    description: Applicant information.
                  application:
                    type: string
                    description: Application slug.
                  application_fields:
                    type: array
                    description: Custom form field values for the grant report.
                  status:
                    type: string
                    description: Grant report status.
                  updated:
                    type: string
                    format: date-time
                    description: Timestamp when the grant report was last updated.
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Grant report created
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook.
                    example: grant_report_created
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              applicant:
                slug: BwXxQawR
                link: https://api.au.cr4ce.com/user/BwXxQawR
                name: Jane Smith
                first_name: Jane
                last_name: Smith
              application: DeqEWpwO
              application_fields:
                - slug: IjKlMnOp
                  link: https://api.au.cr4ce.com/field/IjKlMnOp
                  label:
                    en_GB: <p>Outcomes achieved</p>
                  title:
                    en_GB: Outcomes achieved
                  value: Reached 120 beneficiaries across two regions.
              status: submitted
              updated: '2026-06-18T07:25:20Z'
              event: Grant report created
              timestamp: '2026-08-14T09:30:00Z'
              trigger: grant_report_created
              source: ui
    GrantStatusWebhook:
      description: 'Payload delivered for grant status-related events. '
      required: true
      content:
        application/json:
          schema:
            type: object
            allOf:
              - type: object
                properties:
                  applicant:
                    type: object
                    description: Applicant information.
                  application_fields:
                    type: array
                    description: Custom form field values.
                  grant_status:
                    type: object
                    description: Current grant status information.
                  grant_end_date:
                    type: string
                    format: date-time
                    description: Grant end date.
                  title:
                    type: string
                    description: Application title.
                  slug:
                    type: string
                    description: Application slug.
                  created:
                    type: string
                    format: date-time
                    description: Timestamp when the application was created.
                  submitted:
                    type: string
                    format: date-time
                    description: Timestamp when the application was submitted.
                  updated:
                    type: string
                    format: date-time
                    description: Timestamp when the application was last updated.
              - type: object
                properties:
                  event:
                    type: string
                    description: Human-readable name of the event that triggered the webhook.
                    example: Grant status changed
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 formatted datetime indicating when the event occurred.
                    example: '2020-01-01T00:00:00Z'
                  trigger:
                    type: string
                    description: Machine-readable event key that fired the webhook.
                    example: grant_status_changed
                  source:
                    type: string
                    description: Origin of the change that triggered the event.
                    enum:
                      - ui
                      - api
                    default: ui
            example:
              applicant:
                slug: BwXxQawR
                link: https://api.au.cr4ce.com/user/BwXxQawR
                name: Jane Smith
                first_name: Jane
                last_name: Smith
              application_fields:
                - slug: IjKlMnOp
                  link: https://api.au.cr4ce.com/field/IjKlMnOp
                  label:
                    en_GB: <p>Outcomes achieved</p>
                  title:
                    en_GB: Outcomes achieved
                  value: Reached 120 beneficiaries across two regions.
              grant_status:
                slug: VgyLljqj
                name:
                  en_GB: Completed
                order: 2
              grant_end_date: '2026-12-31T00:00:00Z'
              title: Project title
              slug: DeqEWpwO
              created: '2026-04-13T10:35:30Z'
              submitted: '2026-04-27T01:00:00Z'
              updated: '2026-06-18T07:25:20Z'
              event: Grant status changed
              timestamp: '2026-08-14T09:30:00Z'
              trigger: grant_status_changed
              source: ui
