RexiMemo API Documentation
Use your RexiMemo account from scripts and apps without exposing browser sessions.
All API v1 requests require a current 30-day personal API key. Send it in the HTTP Authorization header. Do not put API keys in query strings or public client-side code.
https://reximemo.net/api/v1Authentication example
curl -H 'Authorization: Bearer rxm_YOUR_KEY' \
https://reximemo.net/api/v1/meKeys are shown in full only when generated. RexiMemo stores a hash rather than the complete key. Generating a replacement key revokes the previous key.
- Browse creators, Flipnotes, comments, channels and search.
- Read your account, favorites, follows, notifications and consoles.
- Download original Flipnote PPMs and existing memo-comment PPMs.
- Request real PNG thumbnails and creator profile-picture PNGs.
- Review and submit your own verified S2R migration requests.
- Favorite, follow, add stars and post text comments.
- Edit/delete your own Flipnote metadata and edit channels you own.
- Reading browser or DSi session records.
- Changing Settings or console configuration.
- Using moderator/administrator powers.
- Publishing/uploading standalone PPMs as RexiMemo Flipnotes.
- Uploading memo-comment PPMs.
GET/api/v1API capabilities
Returns the authenticated account, API permissions, key lifetime, and only the experiment endpoints this account is currently allowed to use.
Example response
{
"ok": true,
"version": "v1",
"permissions": {
"browse": true,
"read_sessions": false,
"write_settings": false,
"download_flipnote_ppm": true,
"upload_flipnote_ppm": false
}
}GET/api/v1/meMy account
Returns your public account record plus star balances, unread notification count, and ticket status.
GET/api/v1/me/profile-picture.pngMy profile picture PNG
Returns your current profile picture as binary image/png. If your account has no selected profile picture, this returns HTTP 404.
GET/api/v1/me/migrationMigration state and review data
Returns your current Sudomemo migration request, selected/approved/imported IDs, status and user-facing staff message. When the stored S2R files are available, it also includes the full per-Flipnote review data and private preview URLs.
POST/api/v1/me/migration/reviewValidate S2R files and build a review
Uploads one or more verified .S2R files without creating the final migration request yet. RexiMemo verifies the manifests and Nintendo PPM signatures, stores the files privately for this account, and returns a review.descriptor plus per-Flipnote eligibility.
Multipart form
multipart/form-data
file field (repeatable):
s2r_file
optional text fields:
source_account
user_notes.S2R migration archive. Direct PPM publication uploads remain blocked.POST/api/v1/me/migrationSubmit an actual migration request
Submits the migration selection and then runs the same final eligibility/import checks as the website. You can either upload the S2R files directly as multipart data or submit JSON using the review.descriptor returned by the review endpoint.
JSON body
{
"review_descriptor": [
{"filename":"95FD4F3065E2146D@DSi.S2R","sha256":"..."}
],
"source_account": "Sudomemo username or profile URL",
"user_notes": "optional",
"selected_flipnotes": ["WATCH_ID_1", "WATCH_ID_2"],
"avatar_flipnote": "WATCH_ID_1",
"confirm_no_stars": true
}s2r_file field(s), plus source_account, user_notes, selected_flipnotes as a JSON array string, optional avatar_flipnote, and confirm_no_stars=1. If every selected Flipnote passes final checks it can be imported immediately; otherwise the unresolved selection remains for staff review.DELETE/api/v1/me/migrationCancel migration request
Cancels the current migration request and removes its private S2R/review files. Flipnotes that were already imported are intentionally kept.
GET/api/v1/me/migration/review/{sha256}/{index}/thumbnail.pngMigration review thumbnail
Returns a private PNG thumbnail for a staged/current S2R Flipnote. The SHA-256 and entry index come from the review response.
GET/api/v1/me/migration/review/{sha256}/{index}/file.ppmMigration review PPM
Returns the verified PPM from your own private migration review. This is a read/download route; it does not publish anything.
GET/api/v1/me/settingsSafe settings snapshot
Reads profile, notification preferences, consoles, Discord link state, passkey metadata, migration status, granted experiment access and API-key metadata.
sessions: null and API keys cannot access session records.GET/api/v1/me/consolesMy consoles
Lists linked console FSIDs and device metadata. This does not expose session IDs, IP addresses, browser user agents, or session history.
GET/api/v1/me/notificationsNotifications
Lists your notifications.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
POST/api/v1/me/notifications/readMark notifications read
Mark one notification, or all notifications, as read.
JSON body
{
"id": 123
}
or
{
"all": true
}GET/api/v1/me/favoritesMy favorites
Lists Flipnotes you have favorited.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/me/followersMy followers
Lists accounts following you.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/me/followingAccounts I follow
Lists accounts you follow.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/me/flipnotesMy Flipnotes
Lists Flipnotes owned by your account.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.sort—new,recent,top,popular, orhot.
GET/api/v1/me/channelsMy channels
Lists channels owned by your account.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/me/star-balanceStar balance
Returns your current colored-star balances.
GET/api/v1/me/ticketTicket status
Returns the current ticket status and star balances.
POST/api/v1/me/ticket/redeemRedeem a ticket
Draws a ticket when one is available. Returns HTTP 429 while the ticket is on cooldown.
JSON body
{}GET/api/v1/users/{public_id}Creator profile
Returns a creator and viewer-specific follow/subscription state.
GET/api/v1/users/{public_id}/profile-picture.pngCreator profile picture PNG
Returns that creator’s current profile picture as binary image/png. Returns 404 when the creator has no selected profile picture.
GET/api/v1/users/{public_id}/flipnotesCreator Flipnotes
Lists a creator’s Flipnotes.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.sort—new,recent,top,popular, orhot.
GET/api/v1/users/{public_id}/favoritesCreator favorites
Lists a creator’s public favorites.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/users/{public_id}/followersCreator followers
Lists a creator’s followers.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/users/{public_id}/followingCreator following
Lists accounts followed by a creator.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/users/{public_id}/channelsCreator channels
Lists channels owned by a creator.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
POST/api/v1/users/{public_id}/followFollow or unfollow
Sets your follow state for another creator.
JSON body
{
"enabled": true
}POST/api/v1/users/{public_id}/upload-notificationsCreator upload notifications
Turns upload notifications for a creator on or off.
JSON body
{
"enabled": true
}GET/api/v1/flipnotesBrowse Flipnotes
Lists Flipnotes across RexiMemo.
Query parameters
page/per_page— pagination, up to 50 per page.sort—new,recent,top,popular, orhot.creator— creator public ID.channel— channel public ID.
GET/api/v1/flipnotes/{public_id}Flipnote details
Returns metadata, creator/channel data, views, downloads, star totals, viewer state, and direct API URLs for the PPM and PNG thumbnail.
GET/api/v1/flipnotes/{public_id}/commentsFlipnote comments
Lists text and memo comments.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/flipnotes/{public_id}/thumbnail.pngFull PNG thumbnail
Renders and returns the real Flipnote thumbnail as image/png. This is binary image data, not JSON.
Authorization: Bearer header even though the response is an image.GET/api/v1/flipnotes/{public_id}/file.ppmOriginal Flipnote PPM
Returns the original Flipnote .ppm as binary data.
Query parameters
download=1— additionally count the request as a Flipnote download.
POST/api/v1/flipnotes/{public_id}/favoriteFavorite or unfavorite
Sets your favorite state.
JSON body
{
"enabled": true
}POST/api/v1/flipnotes/{public_id}/starsAdd stars
Adds stars using your account balance and the same restrictions as the website.
JSON body
{
"color": "yellow",
"amount": 1
}amount is clamped to 1–100. Yellow-star limits and colored-star balances are enforced.POST/api/v1/flipnotes/{public_id}/commentsPost a text comment
Posts a text comment. Replies use the parent comment’s public ID.
JSON body
{
"text": "Nice Flipnote!",
"reply_to": "COMMENT_PUBLIC_ID"
}PATCH/api/v1/flipnotes/{public_id}Edit my Flipnote
Edits metadata on a Flipnote owned by your account. Any other field is rejected.
JSON body
{
"title": "New title",
"description": "Updated description",
"channel_public_id": "CHANNEL_PUBLIC_ID",
"comments_enabled": true
}channel_public_id to null or an empty string to remove the channel.DELETE/api/v1/flipnotes/{public_id}Delete my Flipnote
Deletes a Flipnote owned by your account. API keys cannot delete someone else’s Flipnotes.
GET/api/v1/comments/{public_id}Comment details
Returns one text or memo comment.
GET/api/v1/comments/{public_id}/thumbnail.pngMemo-comment PNG thumbnail
For memo comments, returns a rendered image/png thumbnail.
GET/api/v1/comments/{public_id}/file.ppmMemo-comment PPM
For an existing memo comment, downloads its original PPM. This does not provide memo-comment upload access.
GET/api/v1/channelsBrowse channels
Lists channels.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.
GET/api/v1/channels/{public_id}Channel details
Returns one channel.
GET/api/v1/channels/{public_id}/flipnotesChannel Flipnotes
Lists Flipnotes in a channel.
Query parameters
page— page number, starting at 1.per_page— 1–50 items per page.sort—new,recent,top,popular, orhot.
PATCH/api/v1/channels/{public_id}Edit a channel
Edits the title and/or description when your account has owner-level permission.
JSON body
{
"title": "Channel title",
"description": "Channel description"
}GET/api/v1/categoriesCategories
Returns RexiMemo’s category list.
GET/api/v1/searchSearch
Searches Flipnotes, channels, and creators.
Query parameters
q— search text.limit— 1–50 results per result type; default 30.
GET/api/v1/trending-creatorsTrending creators
Returns creators in ranked order.
Query parameters
limit— 1–100 creators; default 25.
PPM and PNG endpoints return binary files directly instead of JSON. They still require the bearer header. PNG routes include Flipnote thumbnails, memo-comment thumbnails, profile pictures, and migration-review thumbnails.
Download a PPM
curl -L \
-H 'Authorization: Bearer rxm_YOUR_KEY' \
-o flipnote.ppm \
https://reximemo.net/api/v1/flipnotes/FLIPNOTE_PUBLIC_ID/file.ppmDownload a PNG thumbnail
curl -L \
-H 'Authorization: Bearer rxm_YOUR_KEY' \
-o thumbnail.png \
https://reximemo.net/api/v1/flipnotes/FLIPNOTE_PUBLIC_ID/thumbnail.pngAppend ?download=1 to a Flipnote PPM request only when you want RexiMemo to increment that Flipnote’s download count.
JSON endpoints use this error envelope:
{
"ok": false,
"error": "invalid_api_key",
"message": "Supply a current RexiMemo API key in the Authorization: Bearer header."
}400 invalid request or data401 missing/expired/revoked API key403 authenticated but forbidden404 resource/endpoint not found or experiment not granted405 forbidden PPM publication/upload route413 encoder input too large429 rate limit or ticket cooldownBinary endpoints return JSON error bodies when processing fails.