Quick Start
No auth required for GET. CORS enabled Access-Control-Allow-Origin: *. Cache 60s.
# list anime
curl https://anizil.proo.one/cdn/anime?page=1&limit=5
# search
curl https://anizil.proo.one/cdn/search?q=naruto
# episodes for anime
curl https://anizil.proo.one/cdn/anime/1/episodes
# stream by code
curl https://anizil.proo.one/cdn/stream/AK1a1b2c3d4
Base
https://anizil.proo.one/cdn
also /cdn/v2 compatible
Format
{ data: [], pagination: {page,limit,total,pages} }
Rate
100 req/min, no key
Docs
/docs this page
CDN Endpoints (Public)
All under https://anizil.proo.one/cdn — also available as https://anizil.proo.one/cdn/v2
Anime
GET/cdn/animepaginated ?page&limit&genre&status&q
GET/cdn/anime/{id}by id
GET/cdn/anime/{slug}by slug
GET/cdn/anime/{id}/episodesepisodes (paginated)
Episodes & Stream
GET/cdn/episodes?anime_id=1all / filter by anime
GET/cdn/episodes/{id}single by id
GET/cdn/episode/{id}alias — single by id
GET/cdn/stream/{code}by stream_code (AK{id}{hash}) — sources included
GET/cdn/watch/{code}alias — same as stream
Discovery
GET/cdn/trending?limit=10top by views
GET/cdn/latest?limit=10recently added
GET/cdn/randomrandom anime
GET/cdn/schedule?day=Mondayestimated schedule
GET/cdn/statscounts
Search & Meta
GET/cdn/search?q=narutosearch
GET/cdn/genresgenre list
GET/cdn/user/{id}public profile
GET/cdn/infoservice info
Auth (WEB compat)
POST/cdn/login{email,password}
POST/cdn/register{name,email,password}
GET/api/authWEB session check (cookie auth_token)
GET/cdn/authCDN mirror — same
Premium
GET/cdn/premium/plansplans & XP costs
POST/cdn/premium/buy{user_id, plan:1|2|3} — buy with APC
GET/cdn/premium/animepremium anime list
GET/cdn/premium/status?user_id=1user premium status
POST/cdn/redeem{code,user_id} — redeem XP/premium
WEB Compat (ported from WEB/api/*)
POST/api/show-comment{user_id, show_comments} — WEB user_settings toggle
GET/api/message?offset&limitchat pinned + messages (WEB message.php)
POST/api/level-up{user_id} — rank/level calc (WEB level-up.php)
POST/api/notifications/{mark-read|delete|mark-all-read|clear-all}WEB noti.php CRUD
GET/cdn/message?offset&limitCDN mirror
GET/cdn/level-up?user_id=1CDN mirror
Community (public read)
GET/cdn/blogposts
GET/cdn/blog/{id}single
GET/cdn/blog/{id}/commentscomments
GET/cdn/fanartapproved fanart
GET/cdn/predictionsactive predictions
Legacy /api/v2/* still works — proxied to same handler. New apps use /cdn/*.
Animitsu Android App — REST API ANDROID
For Animistsu app per spec — base https://anizil.proo.one/api or https://anizil.proo.one/cdn (CORS *, no key, poll 5s)
Comment System (anime_id)
GET/api/comments/{anime_id}list for anime — returns [ {id,user_id,username,profile_pic_url,role,text,likes,created_at} ]
POST/api/comments{user_id,anime_id,text} — also /cdn/comments
DELETE/api/comments/{comment_id}delete own — also /cdn
POST/api/comments/{id}/like{user_id} toggle like — also /cdn
User & Roles
GET/api/users/{user_id}{user_id,username,profile_pic_url,role,is_premium,premium_until}
PUT/api/users/{user_id}{username,profile_pic_url} — also /cdn
GET/api/users/{user_id}/is-admin{is_super_admin:bool} — golden crown + shimmer for super_admin
Premium
GET/api/users/{user_id}/premium{is_premium,premium_until}
POST/api/users/{user_id}/activate{days:30} — also premium_orders table
Auth (device_id)
POST/api/users/register{device_id,username} → {user_id,username,role,profile_pic_url}
Super Admin: role super_admin → comments show

verified + shimmer bg. Profile pic URL is absolute https:// — app loads via Coil. Login now returns outer
user_id +
profile_pic_url (absolute) for rendering.
OAuth (no API key)
POST/api/oauth/token{email,password} → {user_id,access_token,refresh_token,user}
POST/api/oauth/refresh{refresh_token} → {access_token}
GET/api/oauth/userinfoBearer access_token → user profile (also /cdn/oauth/*)
Admin CDN — No Token (Scratch) NEW
App er jonno admin er sob output — no token, public. Base https://anizil.proo.one/cdn er pasapasi https://anizil.proo.one/admin-cdn
GET/admin-cdninfo + apk (no token)
GET/admin-cdn/animeall anime (paginated, admin view)
GET/admin-cdn/usersusers sanitized
GET/admin-cdn/statscounts
GET/admin-cdn/apkapk file + download url
GET/admin-cdn/settingspublic settings
GET/admin-cdn/commentsapproved comments
GET/admin-cdn/forumforum posts
GET/admin-cdn/badgesbadges
GET/admin-cdn/dashboardoverview stats+settings+apk
Examples
List with pagination
// GET /cdn/anime?page=1&limit=2
{
"data": [{ "id":1, "title":"Attack on Titan" }],
"pagination": { "page":1, "limit":2, "total":42, "pages":21 }
}
JS fetch
const r = await fetch('/cdn/search?q=solo');
const {data, pagination} = await r.json();
PHP
$json = file_get_contents('https://anizil.proo.one/cdn/trending?limit=5');
$data = json_decode($json, true)['data'];
Schema (core)
| Table | Key fields |
anime | id, title, slug, poster_url, genre[], airing_status, broadcast_day |
episodes | id, anime_id, title, created_at |
users | id, name, avatar, role |
Routing
GET /cdn/anime → cdn/index.php
GET /cdn/v2/anime → cdn/index.php (compat)
GET /api/v2/anime → api/v2/index.php
GET /api/anime → api/index.php
.htaccess + web.php both route. Purge cache after deploy.