REST API

Acts as the signed-in person. Base path /open/v1.

Acts as the signed-in user: send the access token as Authorization: Bearer …. The SDK wraps every call (unet.api.feed(), unet.api.createPost(), …). Base path /open/v1.

RequestPermission
GET /feed?limit&cursorcontent:read
GET /posts/:id · /posts/:id/comments · /posts/:id/long-formcontent:read
GET /places/:id/posts?lat&lon (posts tagged with a place)content:read
GET /posts/:id/likes · /posts/:id/reposts · /comments/:id/likes · /comments/:id/reposts (only for the author) · POST /posts/:id/translate {targetLang?}content:read
GET /comments/:id/repliescontent:read
GET /users/:name?limit&offset · /users/:name/followers · /users/:name/followingcontent:read
GET /search?q&limitsearch:read
GET /me/saved · /me/likeslibrary:read
GET /notifications · POST /notifications/readnotifications:read
POST /posts (JSON or multipart: media, long-form, GIF, hashtags, place, schedule)posts:write
GET /gifs/search?q · /gifs/trending · /places/search?q · /me/scheduledposts:write
PUT|DELETE /posts/:id/like · /posts/:id/repost · /comments/:id/likeposts:interact
POST /posts/:id/commentsposts:interact
PUT|DELETE /posts/:id/savelibrary:write
PUT|DELETE /users/:name/follow · POST /me/follow-requests/:id/accept|reject · GET /me/follow-requestsfollows:write
PATCH /me/profile {displayName, bio, links}profile:write
POST /me/avatar · POST /me/banner (multipart, ≤ 10 MB) · DELETE /me/bannerprofile:write
GET /me/settings → {privacy, notifications, content, feed}settings:read
PATCH /me/settings {privacy?, notifications?, content?, feed?} (send only what changes)settings:write
POST /me/muted-keywords {keyword} · DELETE /me/muted-keywords/:keywordsettings:write
PUT · DELETE /users/:username/subscription (new-post notifications; followed accounts only)follows:write
GET /users/:username/mutual (people you follow who follow them)content:read
PUT · DELETE /posts/:id/pin (pin your post to your profile)posts:manage
POST /posts/:id/not-interestedposts:interact
GET /media/link?url=<post.video.url> (a short-lived link a <video src> streams from, with byte ranges)content:read
GET /fediverse · PUT /fediverse {enabled, acceptedPlaintextDisclosure}settings:read · settings:write
GET /fediverse/feed (posts of the Fediverse accounts you follow)content:read
GET /fediverse/search?q= (accounts, posts, hashtags on other servers)search:read
GET /fediverse/actors/:id · /fediverse/actors/lookup?handle= · /fediverse/actors/:id/posts?replies · /fediverse/actors/:id/followers · /following · /fediverse/post?uri= · /fediverse/thread?uri= · /fediverse/hashtags/:tagcontent:read
POST /fediverse/follows {handle} · DELETE /fediverse/actors/:id/followfollows:write
PUT · DELETE /fediverse/like?uri= · /fediverse/boost?uri= · POST /fediverse/replies · POST /fediverse/polls/voteposts:interact
PATCH · DELETE /fediverse/replies (your replies)posts:manage
GET /fediverse/blocked · PUT · DELETE /fediverse/actors/:id/blocksafety:manage
GET /me/not-interested · DELETE /me/not-interested/:idsettings:read · settings:write
PATCH|DELETE /posts/:id · POST /posts/:id/reschedule · DELETE /comments/:idposts:manage
GET /me/blocks · /me/muted · PUT|DELETE /users/:name/block|mute · POST /reportssafety:manage

Errors: 401 invalid_token; 403 insufficient_scope (missing permission) or 403 not_allowed (a rule, e.g. blocked); 429 slow down (Retry-After). Writes take an Idempotency-Key.