Appel Workshop API
Read-only JSON API for levels.
Rate Limiting
Requests are limited per IP address: 60 requests per 60 seconds. Exceeding the limit returns HTTP 429 with a retry_after_seconds value.
Endpoints
GET /api/levels/- Returns all levels (newest first).GET /api/levels/<id>/- Returns one level by id.GET /api/profiles/<username>/- Returns one user profile by username (case-insensitive).
Level Object Fields
id,name,mod_category,mod_category_labeldifficulty,difficulty_rating,quality_ratingdescription,original_uploader,other_creatorsurl,video_url,created_at,detail_urlcreatorobject withusername,display_name,profile_url
Profile Object Fields
username,display_name,bio,scratch_usernamedate_joined,difficulty_system,profile_urluploaded_levels_count,approved_completions_countuploaded_levelslist andapproved_completionslist
Example
{
"id": 123,
"name": "My Level",
"creator": {
"username": "someuser",
"display_name": "Some User",
"profile_url": "https://example.com/profile/someuser/"
},
"mod_category": "appel",
"mod_category_label": "Appel",
"difficulty": 4.5,
"difficulty_rating": 4.75,
"quality_rating": 4.4,
"description": "...",
"original_uploader": "",
"other_creators": "friend1, Friend Two",
"url": "https://example.com",
"video_url": "https://www.youtube.com/embed/VIDEO_ID",
"created_at": "2026-04-25T14:35:12.123456+00:00",
"detail_url": "https://example.com/level/123/"
}