Paste your logs.

Built for Minecraft & Hytale

API Documentation

Integrate mclo.gs directly into your server panel, your hosting software or anything else. This platform was built for high performance automation and can easily be integrated into any existing software via our HTTP API.

Create a log

POST http://api.mclo.gs/1/log application/json
Posting content with the content type application/x-www-form-urlencoded is still supported for backwards compatibility, but does not support setting metadata.
Field Required Type Description
content string The raw log file content as string. Limited to 10.00 MiB and 25,000 lines. Will be truncated if possible and necessary, but truncating on the client side is recommended.
source string The name of the source, e.g. a domain or software name.
metadata array An array of metadata entries.

Example body application/json

{
    "content": "[log file content...]",
    "source": "example.org"
}

Metadata

You can send metadata alongside the log content to be displayed on the log page and/or be read by other applications through this API. This is entirely optional, but can help to provide additional context, e.g. internal server IDs, software versions etc.

A metadata entry is an object with the following fields:

Field Required Type Description
key string The metadata key. Can be used to identify the entry in your code later.
value string|int|float|bool|null The metadata value.
label string The display label. If not provided, the key will be used as label.
visible bool Whether this metadata should be visible on the log page or is only available through the API. Default is true.

Example body with metadata application/json

{
    "content": "[log file content...]",
    "source": "example.org",
    "metadata": [
        {
            "key": "server_id",
            "value": 12345,
            "visible": false
        },
        {
            "key": "software_version",
            "value": "1.2.3",
            "label": "Software Version",
            "visible": true
        }
    ]
}

Responses

Success application/json

The token provided in this response can be used to delete this log later. Store or discard it securely, it will not be shown again.
{
    "success":true,
    "id":"WnMMikq",
    "source":null,
    "created":1769597979,
    "expires":1777373979,
    "size":157369,
    "lines":1201,
    "errors":8,
    "url": "http://mclo.gs/WnMMikq",
    "raw": "http://api.mclo.gs/1/raw/WnMMikq",
    "token":"78351fafe495398163fff847f9a26dda440435dcf7b5f92e8e36308f3683d771",
    "metadata": [
        {
            "key": "server_id",
            "value": 12345,
            "visible": false
        },
        {
            "key": "software_version",
            "value": "1.2.3",
            "label": "Software Version",
            "visible": true
        }
    ]
}

Error application/json

{
    "success": false,
    "error": "Required field 'content' not found."
}

Get log info and content

GET http://api.mclo.gs/1/log/[id]

This endpoint only returns the log info and metadata by default (same response as creating a log), you can also get the content in the same request by enabling it in different formats using GET parameters. You can combine multiple parameters to get multiple content formats in one request, but keep in mind that this will increase the response size.

GET Parameter Response field Description
raw content.raw Includes the raw log content as string in the response.
parsed content.parsed Includes the parsed log content as array/objects in the response.
insights content.insights Includes the automatically detected insights in the response.

Responses

Success application/json

All content fields are only included if the corresponding GET parameter is provided. If no content parameter is provided, the entire content object is omitted from the response.
{
    "success":true,
    "id":"WnMMikq",
    "source":null,
    "created":1769597979,
    "expires":1777373979,
    "size":157369,
    "lines":1201,
    "errors":8,
    "url": "http://mclo.gs/WnMMikq",
    "raw": "http://api.mclo.gs/1/raw/WnMMikq",
    "metadata": [
        {
            "key": "server_id",
            "value": 12345,
            "visible": false
        },
        {
            "key": "software_version",
            "value": "1.2.3",
            "label": "Software Version",
            "visible": true
        }
    ],
    "content": {
        "raw": "[log file content...]",
        "parsed": [ /* parsed log entries */ ],
        "insights": { "problems": [ /* detected problems */ ], "information": [ /* detected information */ ] }
    }
}

Error application/json

{
    "success": false,
    "error": "Log not found."
}

Delete a log

Deleting a log requires the token that was provided when creating the log.
DELETE http://api.mclo.gs/1/log/[id]

Headers

Header Example Description
Authorization Authorization: Bearer 78351fafe495398163f... The type (always "Bearer") and the log token received when creating the log.

Responses

Success application/json

{
    "success": true
}

Error application/json

{
    "success": false,
    "error": "Invalid token."
}

Get the raw log file content

Only use this endpoint if you really only need the raw log content. For most use cases, getting the log info and content together from the log endpoint is recommended.
GET http://api.mclo.gs/1/raw/[id]
Field Type Description
[id] string The log file id, received from the paste endpoint or from a URL (http://mclo.gs/[id]).

Success text/plain

[18:25:33] [Server thread/INFO]: Starting minecraft server version 1.16.2
[18:25:33] [Server thread/INFO]: Loading properties
[18:25:34] [Server thread/INFO]: Default game type: SURVIVAL
...

Error application/json

{
    "success": false,
    "error": "Log not found."
}

Get insights

This endpoint is mainly kept for backwards compatibility. For new applications, getting the insights together with the log info from the log endpoint is recommended.
GET http://api.mclo.gs/1/insights/[id]
Field Type Description
[id] string The log file id, received from the paste endpoint or from a URL (http://mclo.gs/[id]).

Success application/json

{
  "id": "name/type",
  "name": "Software name, e.g. Vanilla",
  "type": "Type name, e.g. Server Log",
  "version": "Version, e.g. 1.12.2",
  "title": "Combined title, e.g. Vanilla 1.12.2 Server Log",
  "analysis": {
    "problems": [
      {
        "message": "A message explaining the problem.",
        "counter": 1,
        "entry": {
          "level": 6,
          "time": null,
          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
          "lines": [
            {
              "number": 1,
              "content": "The full content of the line."
            }
          ]
        },
        "solutions": [
          {
            "message": "A message explaining a possible solution."
          }
        ]
      }
    ],
    "information": [
      {
        "message": "Label: value",
        "counter": 1,
        "label": "The label of this information, e.g. Minecraft version",
        "value": "The value of this information, e.g. 1.12.2",
        "entry": {
          "level": 6,
          "time": null,
          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
          "lines": [
            {
              "number": 6,
              "content": "The full content of the line."
            }
          ]
        }
      }
    ]
  }
}

Error application/json

{
    "success": false,
    "error": "Log not found."
}

Analyse a log without saving it

If you only want to use the analysis features of this service without saving the log, you can use this endpoint. Please do not save logs that you only want to analyse, as this wastes storage space and resources.

POST http://api.mclo.gs/1/analyse application/x-www-form-urlencoded application/json
Field Type Description
content string The raw log file content as string. Maximum length is 10MiB and 25k lines, will be shortened if necessary.

Success application/json

{
  "id": "name/type",
  "name": "Software name, e.g. Vanilla",
  "type": "Type name, e.g. Server Log",
  "version": "Version, e.g. 1.12.2",
  "title": "Combined title, e.g. Vanilla 1.12.2 Server Log",
  "analysis": {
    "problems": [
      {
        "message": "A message explaining the problem.",
        "counter": 1,
        "entry": {
          "level": 6,
          "time": null,
          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
          "lines": [
            {
              "number": 1,
              "content": "The full content of the line."
            }
          ]
        },
        "solutions": [
          {
            "message": "A message explaining a possible solution."
          }
        ]
      }
    ],
    "information": [
      {
        "message": "Label: value",
        "counter": 1,
        "label": "The label of this information, e.g. Minecraft version",
        "value": "The value of this information, e.g. 1.12.2",
        "entry": {
          "level": 6,
          "time": null,
          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
          "lines": [
            {
              "number": 6,
              "content": "The full content of the line."
            }
          ]
        }
      }
    ]
  }
}

Error application/json

{
    "success": false,
    "error": "Required field 'content' is empty."
}

Check storage limits

GET http://api.mclo.gs/1/limits

Success application/json

{
  "storageTime": 7776000,
  "maxLength": 10485760,
  "maxLines": 25000
}
Field Type Description
storageTime integer The duration in seconds that a log is stored for after the last view.
maxLength integer Maximum file length in bytes. Logs over this limit will be truncated to this length.
maxLines integer Maximum number of lines. Additional lines will be removed.

Notes

The API has currently a rate limit of 60 requests per minute per IP address. This is set to ensure the operability of this service. If you have any use case that requires a higher limit, feel free to contact us.