The official SDKs follow this redesign in version 3.0. See SDKs; each SDK page ends with a section on migrating from 2.x.
What did not change
These are frozen so installed uploader configs keep working:POST /upload, with the file in the multipartfilefield.- The
api-key,post-privacyandinclude-metadataheaders.post-typeandpriorityalso work as before. - A missing
post-privacyheader still uploads asprivate. - A successful upload still returns
200. - The top-level
urlin the upload response is still the direct file URL. post.urlis still the share page (https://snipp.gg/p/{code}, orhttps://{domain}/{code}with a link domain), andpost.codeis still the share code.
.sxcu and .iscu configs that read {json:url}, {json:post.url} or {json:post.code} need no changes. If you added a custom error field that reads {json:error}, change it to {json:error.message}, because error is now an object.
Global changes
API paths
Relay paths
All of the API changes above apply to Relay too. Relay also replaced these:Upload responses
The same applies to
POST /posts/{code}/files, which now returns {post, failed?}.
Posts
The post object is now the same everywhere: uploads,GET /posts, GET /posts/{code}, GET /users/{id}/posts, GET /gifs and GET /discover.
New on every post:
like_count, comment_count, liked and team_id. On team posts like_count and liked are null. moderated and restricted are only present for the post’s owner.
Users
Every profile now has
follower_count, following_count, following and blocking, on the API as well as Relay. Wherever a user appears inside another object (post authors, comment authors, notification actors, follower lists, blocks, access lists) it is the same reference: {id, username, nickname, avatar, verified, plan}.