How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

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.

Mink API v3 — Bring Your Own Corpus is one of 14 APIs that University of Gothenburg publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Language Technology, Corpus Linguistics, Research Data, Annotation, and Upload. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and authentication docs.

This API exposes 63 operations across 63 paths, organized into 6 resource areas, and defines 43 schemas. It is described by OpenAPI 3.1.0, at version 3.1.0.dev.

Requests are made against 2 base URLs: https://ws.spraakbanken.gu.se/ws/mink/v3, https://ws.spraakbanken.gu.se/ws/mink/dev.

63 operations 63 paths 43 schemas 11 DELETE32 GET9 POST11 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
3.1.0.dev
Base URL
https://ws.spraakbanken.gu.se/ws/mink/v3
Authentication
HTTP Bearer, API Key
License
Resource Areas
6

Authentication & Security 2

Mink API v3 — Bring Your Own Corpus declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (JWT) (OAuth2PasswordBearer). An API key is passed in the header as X-Api-Key (APIKeyHeader).

Paths & Operations 63

Across 63 paths, the API surfaces 63 operations — 11 DELETE, 32 GET, 9 POST, 11 PUT. They span 6 resource areas: Documentation, Manage Resources, User Management, Manage Corpora, Manage Metadata, Manage Lexicons. Each is listed below with its method, path, parameters, and response codes.

Documentation 9

Routes used for documentation purposes.

GET
/docs
Docs
docs → 200
GET
/openapi.json
Openapi
openapi_openapi_json_get → 200
GET
/redoc
Redoc
redoc → 200
GET
/swagger
Swagger
swagger → 200
GET
/info
Info
info → 200
GET
/return-codes
List Return Codes
return-codes → 200
GET
/corpus/sparv/get-schema
Sparv Schema
get-sparv-schema 1 param → 200500422
GET
/corpus/sparv/list-languages
Sparv Languages
list-sparv-languages 1 param → 200500422
GET
/corpus/sparv/list-exports
Sparv Exports
list-sparv-exports 2 params → 200422500
Manage Resources 5

Routes for listing and getting information about all resources, regardless of type.

PUT
/queue/advance
Advance Queue
advance-queue 1 param → 200401422
GET
/queue/health
Queue Health
queue-health 2 params → 200401503422
GET
/resource/list
List Resources
list-resources 1 param → 200400401404422500
GET
/resource/status/list
List Resource Statuses
list-resource-statuses 1 param → 200400401404422500
GET
/resource/status/get/{resource_id}
Get Resource Status
get-resource-status 2 params → 200400401404422500
User Management 6

Routes for managing information about the authenticated user and admin mode status.

POST
/user/admin-mode/activate
Activate Admin Mode
activate-admin-mode 1 param → 200400401404422500
POST
/admin-mode-ondeprecated
Admin-Mode-On-Deprecated
admin_mode_on_deprecated_admin_mode_on_post 1 param → 200422
POST
/user/admin-mode/deactivate
Deactivate Admin Mode
deactivate-admin-mode 1 param → 200400401404422500
POST
/admin-mode-offdeprecated
Admin-Mode-Off-Deprecated
admin_mode_off_deprecated_admin_mode_off_post 1 param → 200422
GET
/admin-mode-statusdeprecated
Admin Mode Status
admin-mode-status 1 param → 200400401404422500
GET
/user/info/get
Get User Info
get-user-info 1 param → 200400401404422500
Manage Corpora 22

Routes for managing corpus resources with Sparv.

POST
/corpus/create
Create Corpus
create-corpus 1 param → 201400401404422500
GET
/corpus/list
List Corpora
list-corpora 1 param → 200400401404422500
GET
/corpus/korp/listdeprecated
List Korp Corpora
list-korp-corpora 1 param → 200400401404422500
GET
/list-korp-corporadeprecated
List-Korp-Corpora-Deprecated
list_korp_corpora_deprecated_list_korp_corpora_get 1 param → 200422
DELETE
/corpus/remove/{resource_id}
Remove Corpus
remove-corpus 2 params → 200400401404422500
PUT
/corpus/sources/upload/{resource_id}
Upload Sources
upload-corpus-sources 2 params body → 200201400401404422500413
GET
/corpus/sources/list/{resource_id}
List Sources
list-corpus-sources 2 params → 200400401404422500
DELETE
/corpus/sources/remove/{resource_id}
Remove Sources
remove-corpus-sources 3 params → 200400401404422500
GET
/corpus/sources/download/{resource_id}
Download Sources
download-corpus-sources 4 params → 200400401404422500
PUT
/corpus/config/upload/{resource_id}
Upload Config
upload-corpus-config 4 params body → 201400401404422500
GET
/corpus/config/download/{resource_id}
Download Config
download-corpus-config 2 params → 200400401404422500
GET
/corpus/exports/list/{resource_id}
List Exports
list-corpus-exports 2 params → 200400401404422500
GET
/corpus/exports/download/{resource_id}
Download Exports
download-corpus-exports 5 params → 200400401404422500
DELETE
/corpus/exports/remove/{resource_id}
Remove Exports
remove-corpus-exports 2 params → 200400401404422500
GET
/corpus/job/check-input/{resource_id}
Check Input
check-corpus-input 2 params → 200400401404422500
PUT
/corpus/job/run/{resource_id}
Run Sparv
run-corpus-job 4 params → 200400401404422500
POST
/corpus/job/abort/{resource_id}
Abort Job
abort-corpus-job 2 params → 200400401404422500503
DELETE
/corpus/annotations/remove/{resource_id}
Clear Annotations
clear-corpus-annotations 2 params → 200400401404422500503
PUT
/corpus/korp/install/{resource_id}
Install Korp
install-korp 3 params → 200400401404422500
DELETE
/corpus/korp/uninstall/{resource_id}
Uninstall Korp
uninstall-korp 2 params → 200400401404422500503
PUT
/corpus/strix/install/{resource_id}
Install Strix
install-strix 2 params → 200400401404422500
DELETE
/corpus/strix/uninstall/{resource_id}
Uninstall Strix
uninstall-strix 2 params → 200400401404422500503
Manage Metadata 5

Routes for creating, uploading, and downloading metadata resources.

POST
/metadata/create
Create Metadata
create_metadata_metadata_create_post 2 params → 201500422
DELETE
/metadata/remove/{resource_id}
Remove Metadata
remove_metadata_metadata_remove__resource_id__delete 2 params → 200400401404422500
GET
/metadata/list
List Metadata
list_metadata_metadata_list_get 1 param → 200400401404422500
PUT
/metadata/config/upload/{resource_id}
Upload Metadata Yaml
upload_metadata_yaml_metadata_config_upload__resource_id__put 4 params body → 201400401404422500
GET
/metadata/config/download/{resource_id}
Download Metadata Yaml
download_metadata_yaml_metadata_config_download__resource_id__get 2 params → 200400401404422500
Manage Lexicons 16

Routes for managing lexicon resources with Karp.

POST
/lexicon/create
Create Lexicon
create-lexicon 1 param → 201400401404422500
GET
/lexicon/list
List Lexicons
list-lexicons 1 param → 200400401404422500
DELETE
/lexicon/remove/{resource_id}
Remove Lexicon
remove-lexicon 2 params → 200400401404422500
PUT
/lexicon/sources/upload/{resource_id}
Upload Sources
upload-lexicon-sources 2 params body → 200201400401404422500413
GET
/lexicon/sources/list/{resource_id}
List Sources
list-lexicon-sources 2 params → 200400401404422500
DELETE
/lexicon/sources/remove/{resource_id}
Remove Sources
remove-lexicon-sources 3 params → 200400401404422500
GET
/lexicon/sources/download/{resource_id}
Download Sources
download-lexicon-sources 3 params → 200400401404422500
PUT
/lexicon/config/upload/{resource_id}
Upload Config
upload-lexicon-config 4 params body → 201400401404422500
GET
/lexicon/config/download/{resource_id}
Download Config
download-lexicon-config 2 params → 200400401404422500
GET
/lexicon/exports/list/{resource_id}
List Exports
list-lexicon-exports 2 params → 200400401404422500
GET
/lexicon/exports/download/{resource_id}
Download Exports
download-lexicon-exports 5 params → 200400401404422500
DELETE
/lexicon/exports/remove/{resource_id}
Remove Exports
remove-lexicon-exports 2 params → 200400401404422500503
PUT
/lexicon/job/run/{resource_id}
Run Karp Pipeline
run-lexicon-job 2 params → 200400401404422500
POST
/lexicon/job/abort/{resource_id}
Abort Job
abort-lexicon-job 2 params → 200400401404422500503
PUT
/lexicon/karps/install/{resource_id}
Install Karps
install-karps 2 params → 200400401404422500
DELETE
/lexicon/karps/uninstall/{resource_id}
Uninstall Karps
uninstall-karps 2 params → 200400401404422500503

Schemas 43

The contract defines 43 schemas that model the data the API accepts and returns. The most detailed are QueueHealthResponse (18 properties), JobModel (11 properties), CheckInputResponse (10 properties), StatusResponse (9 properties). Each schema is shown below with its type and property counts.

BaseErrorResponse
object
Abstract base model for error responses.
5 properties
BaseResponse
object
Base response model with common fields.
5 properties
Body_upload-corpus-config
object
1 property
Body_upload-corpus-sources
object
1 property 1 required
Body_upload-lexicon-config
object
1 property
Body_upload-lexicon-sources
object
1 property 1 required
Body_upload_metadata_yaml_metadata_config_upload__resource_id__put
object
1 property
CheckInputResponse
object
Model for the /corpus/job/check-input response.
10 properties
CreateResourceResponse
object
Model for the response to a resource creation request.
6 properties
DetailedUserModel
object
Detailed model for the user object in the /user/info/get response.
9 properties
ErrorResponse400
object
Model for 400 error responses.
5 properties
ErrorResponse401
object
Model for 401 error responses.
5 properties
ErrorResponse404File
object
Model for 404 file not found error responses.
5 properties
ErrorResponse404Resource
object
Model for 404 resource not found error responses.
5 properties
ErrorResponse413
object
Model for 413 error responses.
7 properties
ErrorResponse422
object
Model for 422 error responses.
6 properties 1 required
ErrorResponse500
object
Model for 500 error responses.
5 properties
ExportsResponse
object
Model for the /corpus/sparv/list-exports response.
7 properties
FileModel
object
Model for file list.
5 properties
FileResponse
object
Model for file response.
3 properties 1 required
HTTPValidationError
object
1 property
InfoDataModel_NameDescriptionValue_
object
2 properties
InfoDataModel_StatusCodeModel_
object
2 properties
InfoResponse
object
Model for the /info response.
8 properties 2 required
JobModel
object
Model for a generic job.
11 properties
JobStatusModel
object
Model for the status of a resource (used as base for StatusResponse and StatusesResponse).
5 properties
LanguagesResponse
object
Model for the /corpus/sparv/list-languages response.
6 properties
ListingFilesResponse
object
Model for responses with file contents field.
6 properties
NameDescriptionValue
object
Model containing name, description, and value.
3 properties 1 required
QueueHealthJobModel
object
Model for one active queue entry.
9 properties
QueueHealthResponse
object
Model for queue health responses.
18 properties
ResourceModel
object
Model for the resource object.
6 properties
ReturnCodesResponse
object
Model for the /return-codes response.
6 properties
SchemaResponse
object
Model for the /corpus/sparv/get-schema response.
6 properties
StatusCodeModel
object
Status codes for job processes.
2 properties
StatusResponse
object
Model for job status responses.
9 properties
StatusesResponse
object
Model for multiple job statuses responses.
6 properties
UserInfoResponse
object
Model for the /user/info/get response.
6 properties
UserModel
object
Model for the user object.
5 properties
ValidationError
object
5 properties 3 required
mink__core__models__ListResourcesResponse
object
Model for responses listing resource IDs.
6 properties
mink__karp__models__ListResourcesResponse
object
Model for responses where lexicon resources are listed.
6 properties
mink__sparv__models__ListResourcesResponse
object
Model for responses where corpus resources are listed.
6 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

university-of-gothenburg-mink-api-openapi.yml Raw ↑

Other APIs University of Gothenburg publishes across the network.

Korp API v8 — Corpus Concordance Search
Språkbanken Text Metadata API v3
Sparv API v3 — Text Annotation Pipeline
Karp API v7 — Lexical Resource Editing
Karp Search API v1 — Karps sökgränssnitt
GUPEA Repository OAI-PMH 2.0 Interface
GUPEA DSpace 8 REST API
Shibboleth Identity Provider — SAML 2.0 Metadata
Microsoft AD FS Identity Provider (SWAMID entity)
DataCite DOI Registration (client SND.SPRKB, via the Swedish National Data Service)
Crossref Membership (members 36737 and 51378)
Quality of Government (QoG) Open Data
Where this information came from

This is an independent, third-party profile of Mink API v3 — Bring Your Own Corpus, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.