Skip to content

API Reference

difficalcy exposes calculators for all official rulesets in a single server.

Each calculator is accessible by key under /api/calculators/{key}:

Endpoint Description
GET /api/calculators Lists all available calculators with their keys
GET /api/calculators/{key}/info Returns details of the calculation engine
GET /api/calculators/{key}/calculation Calculates both difficulty and performance of a score
POST /api/calculators/{key}/batch/calculation Calculates a batch of difficulties and performances
GET /api/calculators/{key}/beatmapdetails Returns beatmap metadata and statistics

The default available keys are osu, taiko, catch, and mania.


Difficalcy v1

difficalcy


GET /api/calculators

Responses

Schema of the response body
{
    "type": "object",
    "additionalProperties": {
        "$ref": "#/components/schemas/CalculatorInfo"
    }
}

osu


GET /api/calculators/osu/info

Responses

{
    "rulesetName": "string",
    "calculatorName": "string",
    "calculatorPackage": "string",
    "calculatorVersion": "string",
    "calculatorUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "rulesetName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorPackage": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorVersion": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorUrl": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/osu/calculation

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No
mods query string No

Responses

{
    "accuracy": {},
    "combo": {},
    "difficulty": {
        "aim": {},
        "speed": {},
        "flashlight": {},
        "reading": {},
        "total": {}
    },
    "performance": {
        "aim": {},
        "speed": {},
        "accuracy": {},
        "flashlight": {},
        "reading": {},
        "total": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "combo": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "difficulty": {
            "$ref": "#/components/schemas/OsuDifficulty"
        },
        "performance": {
            "$ref": "#/components/schemas/OsuPerformance"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

POST /api/calculators/osu/batch/calculation

Request body

[
    {
        "combo": 78,
        "misses": 257,
        "mehs": 146,
        "oks": 289,
        "sliderTails": 228,
        "sliderTicks": 257,
        "beatmapId": "string",
        "mods": [
            {
                "acronym": "string",
                "settings": {}
            }
        ]
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/OsuScore"
    }
}

Responses

[
    {
        "accuracy": {},
        "combo": {},
        "difficulty": {
            "aim": {},
            "speed": {},
            "flashlight": {},
            "reading": {},
            "total": {}
        },
        "performance": {
            "aim": {},
            "speed": {},
            "accuracy": {},
            "flashlight": {},
            "reading": {},
            "total": {}
        }
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/OsuCalculation"
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/osu/beatmapdetails

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No

Responses

{
    "circleCount": 107,
    "sliderCount": 242,
    "spinnerCount": 13,
    "sliderTickCount": 183,
    "circleSize": {},
    "approachRate": {},
    "accuracy": {},
    "drainRate": {},
    "artist": "string",
    "title": "string",
    "difficultyName": "string",
    "author": "string",
    "maxCombo": 196,
    "length": {},
    "minBPM": 108,
    "maxBPM": 181,
    "commonBPM": 10,
    "baseVelocity": {},
    "tickRate": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "circleCount": {
            "type": "integer",
            "format": "int32"
        },
        "sliderCount": {
            "type": "integer",
            "format": "int32"
        },
        "spinnerCount": {
            "type": "integer",
            "format": "int32"
        },
        "sliderTickCount": {
            "type": "integer",
            "format": "int32"
        },
        "circleSize": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "approachRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "drainRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "artist": {
            "type": [
                "null",
                "string"
            ]
        },
        "title": {
            "type": [
                "null",
                "string"
            ]
        },
        "difficultyName": {
            "type": [
                "null",
                "string"
            ]
        },
        "author": {
            "type": [
                "null",
                "string"
            ]
        },
        "maxCombo": {
            "type": "integer",
            "format": "int32"
        },
        "length": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "minBPM": {
            "type": "integer",
            "format": "int32"
        },
        "maxBPM": {
            "type": "integer",
            "format": "int32"
        },
        "commonBPM": {
            "type": "integer",
            "format": "int32"
        },
        "baseVelocity": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "tickRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

taiko


GET /api/calculators/taiko/info

Responses

{
    "rulesetName": "string",
    "calculatorName": "string",
    "calculatorPackage": "string",
    "calculatorVersion": "string",
    "calculatorUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "rulesetName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorPackage": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorVersion": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorUrl": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/taiko/calculation

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No
mods query string No

Responses

{
    "accuracy": {},
    "combo": {},
    "difficulty": {
        "stamina": {},
        "rhythm": {},
        "colour": {},
        "total": {}
    },
    "performance": {
        "difficulty": {},
        "accuracy": {},
        "total": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "combo": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "difficulty": {
            "$ref": "#/components/schemas/TaikoDifficulty"
        },
        "performance": {
            "$ref": "#/components/schemas/TaikoPerformance"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

POST /api/calculators/taiko/batch/calculation

Request body

[
    {
        "combo": 21,
        "misses": 77,
        "oks": 159,
        "beatmapId": "string",
        "mods": [
            {
                "acronym": "string",
                "settings": {}
            }
        ]
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/TaikoScore"
    }
}

Responses

[
    {
        "accuracy": {},
        "combo": {},
        "difficulty": {
            "stamina": {},
            "rhythm": {},
            "colour": {},
            "total": {}
        },
        "performance": {
            "difficulty": {},
            "accuracy": {},
            "total": {}
        }
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/TaikoCalculation"
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/taiko/beatmapdetails

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No

Responses

{
    "hitCount": 111,
    "drumRollCount": 63,
    "swellCount": 280,
    "accuracy": {},
    "drainRate": {},
    "artist": "string",
    "title": "string",
    "difficultyName": "string",
    "author": "string",
    "maxCombo": 173,
    "length": {},
    "minBPM": 7,
    "maxBPM": 129,
    "commonBPM": 173,
    "baseVelocity": {},
    "tickRate": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "hitCount": {
            "type": "integer",
            "format": "int32"
        },
        "drumRollCount": {
            "type": "integer",
            "format": "int32"
        },
        "swellCount": {
            "type": "integer",
            "format": "int32"
        },
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "drainRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "artist": {
            "type": [
                "null",
                "string"
            ]
        },
        "title": {
            "type": [
                "null",
                "string"
            ]
        },
        "difficultyName": {
            "type": [
                "null",
                "string"
            ]
        },
        "author": {
            "type": [
                "null",
                "string"
            ]
        },
        "maxCombo": {
            "type": "integer",
            "format": "int32"
        },
        "length": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "minBPM": {
            "type": "integer",
            "format": "int32"
        },
        "maxBPM": {
            "type": "integer",
            "format": "int32"
        },
        "commonBPM": {
            "type": "integer",
            "format": "int32"
        },
        "baseVelocity": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "tickRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

catch


GET /api/calculators/catch/info

Responses

{
    "rulesetName": "string",
    "calculatorName": "string",
    "calculatorPackage": "string",
    "calculatorVersion": "string",
    "calculatorUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "rulesetName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorPackage": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorVersion": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorUrl": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/catch/calculation

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No
mods query string No

Responses

{
    "accuracy": {},
    "combo": {},
    "difficulty": {
        "total": {}
    },
    "performance": {
        "total": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "combo": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "difficulty": {
            "$ref": "#/components/schemas/CatchDifficulty"
        },
        "performance": {
            "$ref": "#/components/schemas/CatchPerformance"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

POST /api/calculators/catch/batch/calculation

Request body

[
    {
        "combo": 238,
        "misses": 181,
        "smallDroplets": 253,
        "largeDroplets": 275,
        "beatmapId": "string",
        "mods": [
            {
                "acronym": "string",
                "settings": {}
            }
        ]
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/CatchScore"
    }
}

Responses

[
    {
        "accuracy": {},
        "combo": {},
        "difficulty": {
            "total": {}
        },
        "performance": {
            "total": {}
        }
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/CatchCalculation"
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/catch/beatmapdetails

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No

Responses

{
    "fruitCount": 268,
    "juiceStreamCount": 52,
    "bananaShowerCount": 146,
    "circleSize": {},
    "approachRate": {},
    "drainRate": {},
    "artist": "string",
    "title": "string",
    "difficultyName": "string",
    "author": "string",
    "maxCombo": 161,
    "length": {},
    "minBPM": 80,
    "maxBPM": 272,
    "commonBPM": 221,
    "baseVelocity": {},
    "tickRate": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "fruitCount": {
            "type": "integer",
            "format": "int32"
        },
        "juiceStreamCount": {
            "type": "integer",
            "format": "int32"
        },
        "bananaShowerCount": {
            "type": "integer",
            "format": "int32"
        },
        "circleSize": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "approachRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "drainRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "artist": {
            "type": [
                "null",
                "string"
            ]
        },
        "title": {
            "type": [
                "null",
                "string"
            ]
        },
        "difficultyName": {
            "type": [
                "null",
                "string"
            ]
        },
        "author": {
            "type": [
                "null",
                "string"
            ]
        },
        "maxCombo": {
            "type": "integer",
            "format": "int32"
        },
        "length": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "minBPM": {
            "type": "integer",
            "format": "int32"
        },
        "maxBPM": {
            "type": "integer",
            "format": "int32"
        },
        "commonBPM": {
            "type": "integer",
            "format": "int32"
        },
        "baseVelocity": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "tickRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

mania


GET /api/calculators/mania/info

Responses

{
    "rulesetName": "string",
    "calculatorName": "string",
    "calculatorPackage": "string",
    "calculatorVersion": "string",
    "calculatorUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "rulesetName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorName": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorPackage": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorVersion": {
            "type": [
                "null",
                "string"
            ]
        },
        "calculatorUrl": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/mania/calculation

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No
mods query string No

Responses

{
    "accuracy": {},
    "difficulty": {
        "total": {}
    },
    "performance": {
        "difficulty": {},
        "total": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "difficulty": {
            "$ref": "#/components/schemas/ManiaDifficulty"
        },
        "performance": {
            "$ref": "#/components/schemas/ManiaPerformance"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

POST /api/calculators/mania/batch/calculation

Request body

[
    {
        "misses": 111,
        "mehs": 146,
        "oks": 223,
        "goods": 230,
        "greats": 263,
        "beatmapId": "string",
        "mods": [
            {
                "acronym": "string",
                "settings": {}
            }
        ]
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/ManiaScore"
    }
}

Responses

[
    {
        "accuracy": {},
        "difficulty": {
            "total": {}
        },
        "performance": {
            "difficulty": {},
            "total": {}
        }
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/ManiaCalculation"
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

GET /api/calculators/mania/beatmapdetails

Input parameters

Parameter In Type Default Nullable Description
beatmapId query string No

Responses

{
    "noteCount": 90,
    "holdNoteCount": 224,
    "keyCount": {},
    "accuracy": {},
    "drainRate": {},
    "artist": "string",
    "title": "string",
    "difficultyName": "string",
    "author": "string",
    "maxCombo": 126,
    "length": {},
    "minBPM": 59,
    "maxBPM": 51,
    "commonBPM": 79,
    "baseVelocity": {},
    "tickRate": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "noteCount": {
            "type": "integer",
            "format": "int32"
        },
        "holdNoteCount": {
            "type": "integer",
            "format": "int32"
        },
        "keyCount": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "accuracy": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "drainRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "artist": {
            "type": [
                "null",
                "string"
            ]
        },
        "title": {
            "type": [
                "null",
                "string"
            ]
        },
        "difficultyName": {
            "type": [
                "null",
                "string"
            ]
        },
        "author": {
            "type": [
                "null",
                "string"
            ]
        },
        "maxCombo": {
            "type": "integer",
            "format": "int32"
        },
        "length": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "minBPM": {
            "type": "integer",
            "format": "int32"
        },
        "maxBPM": {
            "type": "integer",
            "format": "int32"
        },
        "commonBPM": {
            "type": "integer",
            "format": "int32"
        },
        "baseVelocity": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        },
        "tickRate": {
            "type": "object",
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "enum": [
                        "NaN",
                        "Infinity",
                        "-Infinity"
                    ]
                }
            ],
            "format": "double"
        }
    }
}

{
    "error": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "required": [
        "error"
    ],
    "type": "object",
    "properties": {
        "error": {
            "type": [
                "null",
                "string"
            ]
        }
    }
}

Schemas

CalculatorInfo

Name Type Description
calculatorName string | null
calculatorPackage string | null
calculatorUrl string | null
calculatorVersion string | null
rulesetName string | null

CatchBeatmapDetails

Name Type Description
approachRate
artist string | null
author string | null
bananaShowerCount integer(int32)
baseVelocity
circleSize
commonBPM integer(int32)
difficultyName string | null
drainRate
fruitCount integer(int32)
juiceStreamCount integer(int32)
length
maxBPM integer(int32)
maxCombo integer(int32)
minBPM integer(int32)
tickRate
title string | null

CatchCalculation

Name Type Description
accuracy
combo
difficulty CatchDifficulty
performance CatchPerformance

CatchDifficulty

Name Type Description
total

CatchPerformance

Name Type Description
total

CatchScore

Name Type Description
beatmapId string | null
combo integer(int32) | null
largeDroplets integer(int32) | null
misses integer(int32)
mods Array<Mod>
smallDroplets integer(int32) | null

ErrorResponse

Name Type Description
error string | null

ManiaBeatmapDetails

Name Type Description
accuracy
artist string | null
author string | null
baseVelocity
commonBPM integer(int32)
difficultyName string | null
drainRate
holdNoteCount integer(int32)
keyCount
length
maxBPM integer(int32)
maxCombo integer(int32)
minBPM integer(int32)
noteCount integer(int32)
tickRate
title string | null

ManiaCalculation

Name Type Description
accuracy
difficulty ManiaDifficulty
performance ManiaPerformance

ManiaDifficulty

Name Type Description
total

ManiaPerformance

Name Type Description
difficulty
total

ManiaScore

Name Type Description
beatmapId string | null
goods integer(int32)
greats integer(int32)
mehs integer(int32)
misses integer(int32)
mods Array<Mod>
oks integer(int32)

Mod

Name Type Description
acronym string | null
settings

OsuBeatmapDetails

Name Type Description
accuracy
approachRate
artist string | null
author string | null
baseVelocity
circleCount integer(int32)
circleSize
commonBPM integer(int32)
difficultyName string | null
drainRate
length
maxBPM integer(int32)
maxCombo integer(int32)
minBPM integer(int32)
sliderCount integer(int32)
sliderTickCount integer(int32)
spinnerCount integer(int32)
tickRate
title string | null

OsuCalculation

Name Type Description
accuracy
combo
difficulty OsuDifficulty
performance OsuPerformance

OsuDifficulty

Name Type Description
aim
flashlight
reading
speed
total

OsuPerformance

Name Type Description
accuracy
aim
flashlight
reading
speed
total

OsuScore

Name Type Description
beatmapId string | null
combo integer(int32) | null
mehs integer(int32)
misses integer(int32)
mods Array<Mod>
oks integer(int32)
sliderTails integer(int32) | null
sliderTicks integer(int32) | null

TaikoBeatmapDetails

Name Type Description
accuracy
artist string | null
author string | null
baseVelocity
commonBPM integer(int32)
difficultyName string | null
drainRate
drumRollCount integer(int32)
hitCount integer(int32)
length
maxBPM integer(int32)
maxCombo integer(int32)
minBPM integer(int32)
swellCount integer(int32)
tickRate
title string | null

TaikoCalculation

Name Type Description
accuracy
combo
difficulty TaikoDifficulty
performance TaikoPerformance

TaikoDifficulty

Name Type Description
colour
rhythm
stamina
total

TaikoPerformance

Name Type Description
accuracy
difficulty
total

TaikoScore

Name Type Description
beatmapId string | null
combo integer(int32) | null
misses integer(int32)
mods Array<Mod>
oks integer(int32)

Tags

Name Description
difficalcy
osu
taiko
catch
mania

Generated from difficalcy OpenAPI schema