REST API
API Versions
Section titled “API Versions”The Canvas REST API supports versioning through the /api/v{version} URL prefix:
- V2 (Current): The latest stable version, featuring enhanced performance and expanded functionality. All integrations have to use this version.
- V1 (Removed): The legacy version, which has since been removed as of November 5th 2025.
V2 API Endpoints
Section titled “V2 API Endpoints”Base URL: https://canvasmc.io/api/v2
GET /projects
Returns a list of all available projects and information about them.
Response
Section titled “Response”{ "projects": [ { "slug": "canvas", "ciJob": "Canvas", "ciJobUrl": "https://jenkins.canvasmc.io/job/Canvas/", "javadocBaseUrl": "https://maven.canvasmc.io/javadoc/releases/io/canvasmc/canvas/canvas-api" }, { "slug": "horizon", "ciJob": "Horizon", "ciJobUrl": "https://jenkins.canvasmc.io/job/Horizon/", "javadocBaseUrl": "https://maven.canvasmc.io/javadoc/releases/io/canvasmc/horizon/core" } ]}GET /builds
Returns a list of all builds. This is identical to the /builds/all endpoint.
Query Parameters
Section titled “Query Parameters”Required
Section titled “Required”project(string) - The project slug for which to display builds
Optional
Section titled “Optional”channel(string) - Filter builds by channel versionexperimental(boolean) - Include experimental builds
Response
Section titled “Response”[ { "buildNumber": 1337, "url": "https://jenkins.canvasmc.io/job/Canvas/1337/", "downloadUrl": "https://jenkins.canvasmc.io/job/Canvas/1337/artifact/canvas-server/build/libs/canvas-build.1337.jar", "channelVersion": "1.21.4", "timestamp": 1739339329161, "isExperimental": true, "commit": { // [!code --] "message": "Hello world!", // [!code --] "hash": "3768ac53eb2671853145bd077ade0579e13741ed" // [!code --] }, // [!code --] "commits": [ { "message": "Hello world!", "hash": "3768ac53eb2671853145bd077ade0579e13741ed" }, { "message": "Why are you reading this?", "hash": "895b307dcc7c6fbb040dc7bd26d9a754e03cf8c7" } ] }, // ...]GET /builds/all
Returns a list of all builds.
Query Parameters
Section titled “Query Parameters”Required
Section titled “Required”project(string) - The project slug for which to display builds
Optional
Section titled “Optional”channel(string) - Filter builds by channel versionexperimental(boolean) - Include experimental builds
Response
Section titled “Response”[ { "buildNumber": 1337, "url": "https://jenkins.canvasmc.io/job/Canvas/1337/", "downloadUrl": "https://jenkins.canvasmc.io/job/Canvas/1337/artifact/canvas-server/build/libs/canvas-build.1337.jar", "channelVersion": "1.21.4", "timestamp": 1739339329161, "isExperimental": true, "commit": { // [!code --] "message": "Hello world!", // [!code --] "hash": "3768ac53eb2671853145bd077ade0579e13741ed" // [!code --] }, // [!code --] "commits": [ { "message": "Hello world!", "hash": "3768ac53eb2671853145bd077ade0579e13741ed" }, { "message": "Why are you reading this?", "hash": "895b307dcc7c6fbb040dc7bd26d9a754e03cf8c7" } ] }, // ...]GET /builds/latest
Returns the latest build.
Query Parameters
Section titled “Query Parameters”Required
Section titled “Required”project(string) - The project slug for which to display the build
Optional
Section titled “Optional”channel(string) - Filter builds by channel versionexperimental(boolean) - Include experimental builds
Response
Section titled “Response”{ "buildNumber": 1337, "url": "https://jenkins.canvasmc.io/job/Canvas/1337/", "downloadUrl": "https://jenkins.canvasmc.io/job/Canvas/1337/artifact/canvas-server/build/libs/canvas-build.1337.jar", "channelVersion": "1.21.4", "timestamp": 1739339329161, "isExperimental": true, "commit": { // [!code --] "message": "Hello world!", // [!code --] "hash": "3768ac53eb2671853145bd077ade0579e13741ed" // [!code --] }, // [!code --] "commits": [ { "message": "Hello world!", "hash": "3768ac53eb2671853145bd077ade0579e13741ed" }, { "message": "Why are you reading this?", "hash": "895b307dcc7c6fbb040dc7bd26d9a754e03cf8c7" } ]}GET /jd
Redirects to the Javadocs page for the latest build of the specified project (or filtered by channel/experimental).
Query Parameters
Section titled “Query Parameters”Required
Section titled “Required”project(string) - The project slug for which to display JDs
Optional
Section titled “Optional”channel(string) – The channel version to use. Defaults to latest.redirect(string) - What page should be opened. Defaults to the main page.experimental(boolean) – Include experimental builds (trueorfalse). Defaults tofalse.
Response
Section titled “Response”Example redirect URL if project=canvas, channel=1.21.8, experimental=false and redirect=org/bukkit/plugin/java/JavaPlugin.html:
https://maven.canvasmc.io/javadoc/snapshots/io/canvasmc/canvas/canvas-api/1.21.8-R0.1-SNAPSHOT/.cache/unpack/org/bukkit/plugin/java/JavaPlugin.html- If version is not provided, the endpoint uses the channel version from the latest build (respecting the experimental flag to allow experimental versions).
- This endpoint does not return JSON; it performs an HTTP redirect to the Javadocs page.
- Use this endpoint to quickly navigate to the Javadocs without manually looking up the build number.
Java API Client
Section titled “Java API Client”Bellow is a Java example file for interacting with the Canvas V2 API.
This API can be used and obtained via the io.canvasmc.httpclient:httpclient:<version> library