Mink API v3 — Bring Your Own Corpus

Mink lets a researcher upload their own text, run it through the Sparv annotation pipeline and publish it into Korp. Sixty-three paths, the largest contract in this profile and the only one with a real authorisation model — an OAuth2 bearer scheme plus an API-key header, whose accounts are federated logins riding on the same SWAMID/eduGAIN infrastructure the University operates its own IdP inside of. Institution-operated: servers ws.spraakbanken.gu.se production and dev, contact sb-info@svenska.gu.se, MIT licence. Verified live 2026-09-01: anonymous GET /info returned HTTP 200 with the job status-code catalogue.

Operations 63

GET /docs Docs #
GET /openapi.json Openapi #
GET /redoc Redoc #
GET /swagger Swagger #
GET /info Info #
GET /return-codes List Return Codes #
PUT /queue/advance Advance Queue #
GET /queue/health Queue Health #
GET /resource/list List Resources #
GET /resource/status/list List Resource Statuses #
GET /resource/status/get/{resource_id} Get Resource Status #
POST /user/admin-mode/activate Activate Admin Mode #
POST /admin-mode-on Admin-Mode-On-Deprecated #
POST /user/admin-mode/deactivate Deactivate Admin Mode #
POST /admin-mode-off Admin-Mode-Off-Deprecated #
GET /admin-mode-status Admin Mode Status #
GET /user/info/get Get User Info #
GET /corpus/sparv/get-schema Sparv Schema #
GET /corpus/sparv/list-languages Sparv Languages #
GET /corpus/sparv/list-exports Sparv Exports #
POST /corpus/create Create Corpus #
GET /corpus/list List Corpora #
GET /corpus/korp/list List Korp Corpora #
GET /list-korp-corpora List-Korp-Corpora-Deprecated #
DELETE /corpus/remove/{resource_id} Remove Corpus #
PUT /corpus/sources/upload/{resource_id} Upload Sources #
GET /corpus/sources/list/{resource_id} List Sources #
DELETE /corpus/sources/remove/{resource_id} Remove Sources #
GET /corpus/sources/download/{resource_id} Download Sources #
PUT /corpus/config/upload/{resource_id} Upload Config #
GET /corpus/config/download/{resource_id} Download Config #
GET /corpus/exports/list/{resource_id} List Exports #
GET /corpus/exports/download/{resource_id} Download Exports #
DELETE /corpus/exports/remove/{resource_id} Remove Exports #
GET /corpus/job/check-input/{resource_id} Check Input #
PUT /corpus/job/run/{resource_id} Run Sparv #
POST /corpus/job/abort/{resource_id} Abort Job #
DELETE /corpus/annotations/remove/{resource_id} Clear Annotations #
PUT /corpus/korp/install/{resource_id} Install Korp #
DELETE /corpus/korp/uninstall/{resource_id} Uninstall Korp #
PUT /corpus/strix/install/{resource_id} Install Strix #
DELETE /corpus/strix/uninstall/{resource_id} Uninstall Strix #
POST /metadata/create Create Metadata #
DELETE /metadata/remove/{resource_id} Remove Metadata #
GET /metadata/list List Metadata #
PUT /metadata/config/upload/{resource_id} Upload Metadata Yaml #
GET /metadata/config/download/{resource_id} Download Metadata Yaml #
POST /lexicon/create Create Lexicon #
GET /lexicon/list List Lexicons #
DELETE /lexicon/remove/{resource_id} Remove Lexicon #
PUT /lexicon/sources/upload/{resource_id} Upload Sources #
GET /lexicon/sources/list/{resource_id} List Sources #
DELETE /lexicon/sources/remove/{resource_id} Remove Sources #
GET /lexicon/sources/download/{resource_id} Download Sources #
PUT /lexicon/config/upload/{resource_id} Upload Config #
GET /lexicon/config/download/{resource_id} Download Config #
GET /lexicon/exports/list/{resource_id} List Exports #
GET /lexicon/exports/download/{resource_id} Download Exports #
DELETE /lexicon/exports/remove/{resource_id} Remove Exports #
PUT /lexicon/job/run/{resource_id} Run Karp Pipeline #
POST /lexicon/job/abort/{resource_id} Abort Job #
PUT /lexicon/karps/install/{resource_id} Install Karps #
DELETE /lexicon/karps/uninstall/{resource_id} Uninstall Karps #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mink-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-gothenburg-mink-api-openapi.yml Raw ↑
# x-method: searched
# x-source-url: https://ws.spraakbanken.gu.se/ws/mink/v3/openapi.json
# Written by API Evangelist for the api-evangelist/university-of-gothenburg repo on
# 2026-09-01. `x-method` uses the provenance-manifest vocabulary; the artifact's own
# `method:` key uses the enrichment-contract vocabulary. They are not in conflict.
openapi: 3.1.0
info:
  title: Mink backend
  description: "Mink is Språkbanken Text's platform for uploading, annotating and publishing your own\
    \ corpus. It is the largest of the six contracts (63 paths) and the only one with a real authorisation\
    \ model — OAuth2 bearer plus an API-key header, both fronted by the eduGAIN/SWAMID login used across\
    \ the service. Institution-operated: declared servers are ws.spraakbanken.gu.se production and dev,\
    \ and info.contact is sb-info@svenska.gu.se.\n\n---\n\nUPSTREAM DESCRIPTION\n\n## Introduction\n\n\
    The Mink backend is a REST API that powers the [Mink](https://spraakbanken.gu.se/mink) frontend, Språkbanken's\
    \ data\nplatform. It enables users to:\n\n- upload corpus data, process it using Sparv and install\
    \ it in Korp and Strix\n- upload lexicon data and install it in Karp's search mode\n- manage metadata\
    \ resources (limited support)\n\nThis documentation provides a comprehensive reference for all available\
    \ API routes.\n\n## Workflow for corpora\n\nA workflow for processing data with Sparv via Mink could\
    \ look like this:\n\n1. [Create a new corpus](#operation/create-corpus)\n2. [Upload some corpus source\
    \ files](#operation/upload-corpus-sources)\n3. [Upload a corpus config file](#operation/upload-corpus-config)\n\
    4. [Run Sparv](#operation/run-corpus-job)\n5. [Check the job status](#operation/get-resource-status)\n\
    6. [Download export files](#operation/download-corpus-exports)\n7. [Install the corpus in Korp](#operation/install-korp)\
    \ / [Strix](#operation/install-strix)\n\n## Workflow for lexicons\n\n1. [Create a new lexicon](#operation/create-lexicon)\n\
    2. [Upload some lexicon source files](#operation/upload-lexicon-sources)\n3. [Upload a lexicon config\
    \ file](#operation/upload-lexicon-config)\n4. [Run the Karp pipeline](#operation/run-lexicon-job)\n\
    5. [Check the job status](#operation/get-resource-status)\n6. [Install the lexicon in Karp's search\
    \ mode](#operation/install-karps)\n\n## Authentication\n\nNote that most HTTP requests need to be\
    \ authenticated with (A) a JSON Web Token (JWT, read more at\n<https://jwt.io/>) or (B) an SB Auth\
    \ user API key:\n\n### (A) JWT\n\n1. In the browser, log in at <https://spraakbanken.gu.se/mink>.\n\
    2. Open <https://sp.spraakbanken.gu.se/auth/jwt> to download the token in plain text.\n3. Use the\
    \ token in the request header as: `Authorization: Bearer <token>`.\n4. The token is valid for a few\
    \ hours. When it expires, repeat these steps.\n\n### (B) API key\n\n1. Ask Språkbanken for an API\
    \ key.\n2. Use the API key token in the request header as: `X-Api-Key: <token>`.\n3. The token is\
    \ valid for an extended time, currently 90 days. When it expires, repeat these steps.\n\n## Responses\n\
    \n- Most responses will be in json format.\n- Json responses contain a `status` field which will have\
    \ the value `success` if the response status code is\n  anything between 200 and 299 and `error` otherwise.\
    \ Thus this `status` merely reports whether the call was\n  processed correctly.\n- All json responses\
    \ also contain a `return_code` field with a unique code that can be used for mapping to\n  human-friendly\
    \ error messages.\n- All json responses contain a `message` field with information about what was\
    \ done during the call or where things\n  went wrong.\n- Each call may have an arbitrary amount of\
    \ additional fields containing more information or data."
  x-logo:
    url: https://raw.githubusercontent.com/spraakbanken/mink-backend/main/mink/static/mink.svg
  contact:
    name: Språkbanken
    url: https://spraakbanken.gu.se/
    email: sb-info@svenska.gu.se
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 3.1.0.dev
  x-operator: institution
  x-institution: University of Gothenburg
  x-unit: Språkbanken Text (Department of Swedish, Multilingualism, Language Technology)
  x-provenance:
    generated: '2026-09-01'
    method: searched
    source: https://ws.spraakbanken.gu.se/ws/mink/v3/openapi.json — Fetched 2026-09-01 from the Språkbanken
      Text API documentation index at https://ws.spraakbanken.gu.se/docs/ , which links each service's
      published OpenAPI document. The pristine copy as fetched is in openapi/_original/.
paths:
  /docs:
    get:
      tags:
      - Documentation
      summary: Docs
      description: Render mkdocs HTML with the developer's guide.
      operationId: docs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /openapi.json:
    get:
      tags:
      - Documentation
      summary: Openapi
      description: Serve the open API specification (in json format) with custom ReDoc operation links.
      operationId: openapi_openapi_json_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
  /redoc:
    get:
      tags:
      - Documentation
      summary: Redoc
      description: Render ReDoc HTML (documentation for this API).
      operationId: redoc
      responses:
        '200':
          description: Successful Response
          content:
            text/html:
              schema:
                type: string
  /swagger:
    get:
      tags:
      - Documentation
      summary: Swagger
      description: Render Swagger UI HTML (documentation for this API).
      operationId: swagger
      responses:
        '200':
          description: Successful Response
          content:
            text/html:
              schema:
                type: string
  /info:
    get:
      tags:
      - Documentation
      summary: Info
      description: Show info about data processing, e.g. job status codes, file size limits and Sparv
        importer modules.
      operationId: info
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfoResponse'
  /return-codes:
    get:
      tags:
      - Documentation
      summary: List Return Codes
      description: List all return codes.
      operationId: return-codes
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnCodesResponse'
  /queue/advance:
    put:
      tags:
      - Manage Resources
      summary: Advance Queue
      description: 'Check the job queue and attempt to advance it.


        For Mink internal use only!


        1. Unqueue jobs that are done, aborted or erroneous

        2. For running jobs, check if process is still running

        3. Run the next job in the queue if there are fewer running jobs than allowed'
      operationId: advance-queue
      parameters:
      - name: secret_key
        in: query
        required: true
        schema:
          type: string
          description: Secret key for authentication
          title: Secret Key
        description: Secret key for authentication
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '401':
          content:
            application/json:
              example:
                status: error
                message: Failed to confirm secret key for protected route
                return_code: invalid_secret_key
          description: Unauthorized
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /queue/health:
    get:
      tags:
      - Manage Resources
      summary: Queue Health
      description: 'Return monitorable queue health statistics for internal checks and for admins.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/queue/health'' -H ''Authorization: Bearer
        YOUR_JWT'' -H ''cookie: session_id=MY_SESSION_ID''

        ```'
      operationId: queue-health
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: secret_key
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Secret Key
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueHealthResponse'
        '401':
          content:
            application/json:
              example:
                status: error
                message: Failed to confirm secret key for protected route
                return_code: invalid_secret_key
          description: Unauthorized
        '503':
          content:
            application/json:
              example:
                status: error
                message: Queue health warning detected
                return_code: queue_degraded
                healthy: false
                warning_threshold_seconds: 3600
                warnings:
                - Oldest running job has been active for 7260 seconds
                queue_size: 1
                running_jobs: 1
                waiting_jobs: 0
                max_workers: 1
                last_started: '2026-04-13T07:00:00+02:00'
                seconds_since_last_start: 7260
                oldest_running_started: '2026-04-13T07:00:00+02:00'
                oldest_running_seconds: 7260
                oldest_waiting_seconds: 0
                queue_jobs:
                - resource_id: mink-dxh6e6wtff
                  resource_type: corpus
                  current_process: sparv
                  job_status: running
                  priority: ''
                  queued: '2026-04-13T06:59:55+02:00'
                  started: '2026-04-13T07:00:00+02:00'
                  age_reference: started
                  age_seconds: 7260
              schema:
                $ref: '#/components/schemas/QueueHealthResponse'
          description: Service Unavailable
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /resource/list:
    get:
      tags:
      - Manage Resources
      summary: List Resources
      description: 'List all resources available to the authenticated user, regardless of resource type.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/resource/list'' -H ''Authorization: Bearer
        YOUR_JWT''

        ```'
      operationId: list-resources
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mink__core__models__ListResourcesResponse'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /resource/status/list:
    get:
      tags:
      - Manage Resources
      summary: List Resource Statuses
      description: 'Return statuses for all resources available to the authenticated user.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/resource/status/list'' -H ''Authorization:
        Bearer YOUR_JWT''

        ```'
      operationId: list-resource-statuses
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusesResponse'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /resource/status/get/{resource_id}:
    get:
      tags:
      - Manage Resources
      summary: Get Resource Status
      description: 'Return the status for one resource.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/resource/status/get/<resource_id>'' -H
        ''Authorization: Bearer YOUR_JWT''

        ```'
      operationId: get-resource-status
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: resource_id
        in: path
        required: true
        schema:
          type: string
          title: Resource Id
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              example:
                status: error
                message: Failed to get job for resource
                return_code: failed_getting_job
                info: Error getting job info for resource
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /user/admin-mode/activate:
    post:
      tags:
      - User Management
      summary: Activate Admin Mode
      description: 'Turn on admin mode for the user if the user can be verified as a Mink admin in the
        authentication system.


        When admin mode is activated the user will have full access to all resources in Mink. This works
        by setting a

        session cookie in the client. Admin mode will be activated until [turned off](#operation/deactivate-admin-mode)
        or until the

        session expires.


        ### Example


        ```bash

        curl -X POST ''https://ws.spraakbanken.gu.se/ws/mink/v3/user/admin-mode/activate'' -H ''Authorization:
        Bearer YOUR_JWT''

        ```'
      operationId: activate-admin-mode
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
              example:
                status: success
                message: Admin mode turned on
                return_code: admin_on
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /admin-mode-on:
    post:
      tags:
      - User Management
      summary: Admin-Mode-On-Deprecated
      description: 'Turn on admin mode for the user if the user can be verified as a Mink admin in the
        authentication system.


        When admin mode is activated the user will have full access to all resources in Mink. This works
        by setting a

        session cookie in the client. Admin mode will be activated until [turned off](#operation/deactivate-admin-mode)
        or until the

        session expires.


        ### Example


        ```bash

        curl -X POST ''https://ws.spraakbanken.gu.se/ws/mink/v3/user/admin-mode/activate'' -H ''Authorization:
        Bearer YOUR_JWT''

        ```'
      operationId: admin_mode_on_deprecated_admin_mode_on_post
      deprecated: true
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /user/admin-mode/deactivate:
    post:
      tags:
      - User Management
      summary: Deactivate Admin Mode
      description: 'Turn off admin mode for the user by removing the session cookie from the client.


        ### Example


        ```bash

        curl -X POST ''https://ws.spraakbanken.gu.se/ws/mink/v3/user/admin-mode/deactivate'' -H ''Authorization:
        Bearer YOUR_JWT''

        ```'
      operationId: deactivate-admin-mode
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
              example:
                status: success
                message: Admin mode turned off
                return_code: admin_off
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /admin-mode-off:
    post:
      tags:
      - User Management
      summary: Admin-Mode-Off-Deprecated
      description: 'Turn off admin mode for the user by removing the session cookie from the client.


        ### Example


        ```bash

        curl -X POST ''https://ws.spraakbanken.gu.se/ws/mink/v3/user/admin-mode/deactivate'' -H ''Authorization:
        Bearer YOUR_JWT''

        ```'
      operationId: admin_mode_off_deprecated_admin_mode_off_post
      deprecated: true
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /admin-mode-status:
    get:
      tags:
      - User Management
      summary: Admin Mode Status
      description: 'Check whether admin mode is activated.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/admin-mode-status'' -H ''Authorization:
        Bearer YOUR_JWT''

        ```'
      operationId: admin-mode-status
      deprecated: true
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
              example:
                status: success
                message: Returning status of admin mode
                return_code: admin_status
                admin_mode_status: true
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /user/info/get:
    get:
      tags:
      - User Management
      summary: Get User Info
      description: 'Return all user related info for the authenticated user.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/user/info/get'' -H ''Authorization: Bearer
        YOUR_JWT''

        ```'
      operationId: get-user-info
      security:
      - OAuth2PasswordBearer: []
      - APIKeyHeader: []
      parameters:
      - name: session_id
        in: cookie
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Session ID
          title: Session Id
        description: Session ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfoResponse'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404Resource'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
  /corpus/sparv/get-schema:
    get:
      tags:
      - Documentation
      summary: Sparv Schema
      description: 'Get the JSON schema for the Sparv config format.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/corpus/sparv/get-schema''

        ```'
      operationId: get-sparv-schema
      parameters:
      - name: update-cache
        in: query
        required: false
        schema:
          type: boolean
          description: If true, force update the cached Sparv data
          default: false
          title: Update-Cache
        description: If true, force update the cached Sparv data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaResponse'
        '500':
          content:
            application/json:
              example:
                status: error
                message: Failed to list contents
                return_code: failed_listing_content
                info: Failed getting Sparv config schema
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /corpus/sparv/list-languages:
    get:
      tags:
      - Documentation
      summary: Sparv Languages
      description: 'List languages available in Sparv along with their language codes (ISO 639-3).


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/corpus/sparv/list-languages''

        ```'
      operationId: list-sparv-languages
      parameters:
      - name: update-cache
        in: query
        required: false
        schema:
          type: boolean
          description: If true, force update the cached Sparv data
          default: false
          title: Update-Cache
        description: If true, force update the cached Sparv data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LanguagesResponse'
        '500':
          content:
            application/json:
              example:
                status: error
                message: Failed to list contents
                return_code: failed_listing_content
                info: Failed listing languages
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
          description: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /corpus/sparv/list-exports:
    get:
      tags:
      - Documentation
      summary: Sparv Exports
      description: 'List available Sparv export formats for the chosen language (default: ''swe'').


        The language is specified with the `language` as ISO 639-3 code. See available languages by calling

        <https://ws.spraakbanken.gu.se/ws/mink/v3/corpus/sparv/list-languages>.


        ### Example


        ```bash

        curl -X GET ''https://ws.spraakbanken.gu.se/ws/mink/v3/corpus/sparv/list-exports?language=swe''

        ```'
      operationId: list-sparv-exports
      parameters:
      - name: language
        in: query
        required: false
        schema:
          type: string
          description: languages for which to list exports
          default: swe
          title: Language
        description: languages for which to list exports
      - name: update-cache
        in: query
        required: false
        schema:
          type: boolean
          description: If true, force update the cached Sparv data
          default: false
          title: Update-Cache
        description: If true, force update the cached Sparv data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/co

# --- truncated at 32 KB (211 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-gothenburg/refs/heads/main/openapi/university-of-gothenburg-mink-api-openapi.yml