Rosty API
The Rosty API lets you create and maintain manga reading playlists from scripts, tools or your own apps. It is the same API the Rosty browser extension uses.
Create an access token in My profile → Developers → API Access. The token is shown only once, so copy it and store it safely. You can revoke it at any time.
Quickstart
- Log in to Rosty and create a token in My profile → Developers → API Access.
- Send it on every request as
Authorization: Bearer rosty_pat_.... - Start creating playlists.
# List your playlists (including private ones)
curl "https://api.rosty.app/api/v1/playlists?mine=1" \
-H "Authorization: Bearer rosty_pat_..."
# Create a private playlist (may start with no songs)
curl -X POST "https://api.rosty.app/api/v1/playlists" \
-H "Authorization: Bearer rosty_pat_..." \
-H "Content-Type: application/json" \
-d '{
"name": "One Piece - Chapter 1",
"mangaId": "13",
"chapter": 1,
"isPublic": false,
"songs": []
}'
# Add songs (replace the full list)
curl -X PUT "https://api.rosty.app/api/v1/playlists/42/songs" \
-H "Authorization: Bearer rosty_pat_..." \
-H "Content-Type: application/json" \
-d '{
"expectedVersion": 1,
"songs": [
{
"songUrl": "https://soundcloud.com/forss/flickermood",
"rangeStart": 1,
"rangeEnd": 5,
"loop": false
}
]
}' Visibility: while isPublic
is false the playlist is visible only to you.
Making it public requires at least one song.
Concurrency: send expectedVersion
on writes. If someone else wrote first you get a 409 VERSION_CONFLICT
instead of silently overwriting their changes.
Endpoints
| Method | Path |
|---|---|
| GET | /api/v1/playlists?mine=1 |
| GET | /api/v1/playlists?mangaId=13&chapter=1 |
| POST | /api/v1/playlists |
| GET | /api/v1/playlists/{id} |
| PATCH | /api/v1/playlists/{id} |
| PUT | /api/v1/playlists/{id}/songs |
| POST | /api/v1/playlists/{id}/publish |
| GET | /api/v1/soundcloud/search?q=... |
| GET | /api/v1/manga/search?q=... |
Errors
Every error uses the same shape:
{ "ok": false, "error": { "code": "...", "message": "..." } }
| HTTP | When |
|---|---|
| 400 | Malformed request |
| 401 | Missing, invalid or expired token |
| 403 | Authenticated but not the owner |
| 404 | Not found (or a private playlist that is not yours) |
| 409 | The playlist was modified by someone else |
| 422 | The content failed validation |
| 500 | Server error |
API reference
Full reference generated from the OpenAPI specification.