KTH Royal Institute of Technology Swagger API

Template API project for Node.js

Operations 3

GET /_checkAPIkey Test authentication setup #
GET /v1/data/{id} Data with ID #
POST /v1/data/{id} Store data #

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/kth:kth-royal-institute-of-technology-swagger-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

kth-swagger-openapi.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "title": "Node API",
    "description": "Template API project for Node.js",
    "version": "1.0.0"
  },
  "basePath": "/api/node",
  "consumes": ["application/json"],
  "produces": ["application/json"],
  "paths": {
    "/_checkAPIkey": {
      "get": {
        "tags": ["system"],
        "operationId": "checkAPIkey",
        "summary": "Test authentication setup",
        "description": "Secured test endpoint which can be used to validate that a client has a working authentication setup\n\n_(System.checkAPIKey)_",
        "parameters": [],
        "responses": {
          "200": {
            "description": "The given authentication is **accepted**"
          },
          "401": {
            "description": "This endpoint is secured - **credentials are missing or invalid**."
          },
          "default": {
            "description": "Unexpected response - internal error"
          }
        },
        "security": [{ "api_key": ["read"] }]
      }
    },
    "/v1/data/{id}": {
      "get": {
        "tags": ["data"],
        "operationId": "getDataById",
        "summary": "Data with ID",
        "description": "Returns the earlier stored data-object with the given ID.\n\n_(Sample.getData)_\n\n",
        "parameters": [{ "$ref": "#/parameters/DataId" }],
        "responses": {
          "200": {
            "description": "The requested data",
            "schema": { "$ref": "#/definitions/DataObject" }
          },
          "401": {
            "description": "This endpoint is secured - **credentials are missing or invalid**."
          },
          "404": {
            "description": "No data found for given ID",
            "schema": {
              "type": "object",
              "properties": { "message": { "type": "string", "example": "document not found" } }
            }
          },
          "default": {
            "description": "Unexpected response - internal error"
          }
        },
        "security": [{ "api_key": ["read"] }]
      },
      "post": {
        "tags": ["data"],
        "operationId": "postDataById",
        "summary": "Store data",
        "description": "Saves the given data-object, overwriting any old data with the same ID.\n\n_(Sample.postData)_",
        "parameters": [{ "$ref": "#/parameters/DataId" }, { "$ref": "#/parameters/DataObject" }],
        "responses": {
          "200": {
            "description": "The stored data object",
            "schema": { "$ref": "#/definitions/DataObject" }
          },
          "400": {
            "description": "Invalid request",
            "schema": {
              "type": "object",
              "properties": {
                "message": { "type": "string", "example": "Sample validation failed: name: Name is required." }
              }
            }
          },
          "401": {
            "description": "This endpoint is secured - **credentials are missing or invalid**."
          },
          "default": {
            "description": "Unexpected response - internal error"
          }
        },
        "security": [{ "api_key": ["write"] }]
      }
    }
  },
  "securityDefinitions": {
    "api_key": {
      "type": "apiKey",
      "name": "api_key",
      "in": "header"
    }
  },
  "parameters": {
    "DataId": {
      "in": "path",
      "description": "ID of data object, e.g. \"123\"",
      "name": "id",
      "required": true,
      "type": "string"
    },
    "DataObject": {
      "in": "body",
      "description": "Data to save with given ID",
      "name": "data",
      "required": true,
      "schema": {
        "type": "object",
        "properties": { "name": { "type": "string", "example": "John Doe" } }
      }
    }
  },
  "definitions": {
    "DataObject": {
      "properties": {
        "id": { "type": "string", "example": "123" },
        "name": { "type": "string", "example": "John Doe" }
      }
    }
  }
}