hippofish/docs/api-change.md

270 lines
16 KiB
Markdown
Raw Normal View History

# Changes to the Firefish API
2023-09-26 06:08:43 +02:00
Breaking changes are indicated by the :warning: icon.
## Unreleased
2024-06-06 02:43:11 +02:00
- The old Mastodon API has been replaced with a new implementation based on Iceshrimps.
- :warning: The new API uses a new format to manage Mastodon sessions in the database, whereas old implementation uses Misskey sessions. All previous client app and token registrations will not work with the new API. All clients need to be re-registered and all users need to re-authenticate.
- :warning: All IDs (of statuses/notes, notifications, users, etc.) will be using the alphanumerical format, aligning with the Firefish/Misskey API. The old numerical IDs will not work when queried against the new API.
<details>
<summary>Available endpoints (under <code>https://instance-domain/api/</code>)</summary>
2024-06-30 11:58:00 +02:00
| method | endpoint | note |
|:--------:|:----------------------------------:|:------------------------------------------:|
| `POST` | `oauth/token` | |
| `POST` | `oauth/revoke` | |
| `POST` | `v1/apps` | |
| `GET` | `v1/apps/verify_credentials` | |
| `POST` | `v1/firefish/apps/info` | Firefish extension, uses MiAuth |
| `POST` | `v1/firefish/auth/code` | Firefish extension, uses MiAuth |
| | | |
| `GET` | `v1/accounts/verify_credentials` | |
| `PATCH` | `v1/accounts/update_credentials` | |
| `GET` | `v1/accounts/lookup` | |
| `GET` | `v1/accounts/relationships` | |
| `GET` | `v1/accounts/search` | |
| `GET` | `v1/accounts/:id` | |
| `GET` | `v1/accounts/:id/statuses` | |
| `GET` | `v1/accounts/:id/featured_tags` | |
| `GET` | `v1/accounts/:id/followers` | |
| `GET` | `v1/accounts/:id/following` | |
| `GET` | `v1/accounts/:id/lists` | |
| `POST` | `v1/accounts/:id/follow` | |
| `POST` | `v1/accounts/:id/unfollow` | |
| `POST` | `v1/accounts/:id/block` | |
| `POST` | `v1/accounts/:id/unblock` | |
| `POST` | `v1/accounts/:id/mute` | |
| `POST` | `v1/accounts/:id/unmute` | |
| | | |
| `GET` | `v1/featured_tags` | always returns an empty list |
| `GET` | `v1/followed_tags` | always returns an empty list |
| `GET` | `v1/bookmarks` | |
| `GET` | `v1/favourites` | |
| | | |
| `GET` | `v1/mutes` | |
| `GET` | `v1/blocks` | |
| `GET` | `v1/follow_requests` | |
| `POST` | `v1/follow_requests/:id/authorize` | |
| `POST` | `v1/follow_requests/:id/reject` | |
| | | |
| `GET` | `v1/filters` | |
| `POST` | `v1/filters` | |
| `GET` | `v2/filters` | |
| `POST` | `v2/filters` | |
| | | |
| `GET` | `v1/lists` | |
| `POST` | `v1/lists` | |
| `GET` | `v1/lists/:id` | |
| `PUT` | `v1/lists/:id` | |
| `DELETE` | `v1/lists/:id` | |
| `GET` | `v1/lists/:id/accounts` | |
| `POST` | `v1/lists/:id/accounts` | |
| `DELETE` | `v1/lists/:id/accounts` | |
| | | |
| `GET` | `v1/media/:id` | |
| `PUT` | `v1/media/:id` | |
| `POST` | `v1/media` | |
| `POST` | `v2/media` | |
| | | |
| `GET` | `v1/custom_emojis` | |
| `GET` | `v1/instance` | |
| `GET` | `v2/instance` | |
| `GET` | `v1/announcements` | |
| `POST` | `v1/announcements/:id/dismiss` | |
| `GET` | `v1/trends` | pagination is unimplemented |
| `GET` | `v1/trends/tags` | pagination is unimplemented |
| `GET` | `v1/trends/statuses` | |
| `GET` | `v1/trends/links` | always returns an empty list |
| `GET` | `v1/preferences` | |
| `GET` | `v2/suggestions` | |
| | | |
| `GET` | `v1/notifications` | |
| `GET` | `v1/notifications/:id` | |
| `POST` | `v1/notifications/clear` | |
| `POST` | `v1/notifications/:id/dismiss` | |
| `POST` | `v1/conversations/:id/read` | |
| `GET` | `v1/push/subscription` | |
| `POST` | `v1/push/subscription` | |
| `DELETE` | `v1/push/subscription` | |
| | | |
| `GET` | `v1/search` | |
| `GET` | `v2/search` | |
| | | |
| `POST` | `v1/statuses` | |
| `PUT` | `v1/statuses/:id` | |
| `GET` | `v1/statuses/:id` | |
| `DELETE` | `v1/statuses/:id` | |
| `GET` | `v1/statuses/:id/context` | |
| `GET` | `v1/statuses/:id/history` | |
| `GET` | `v1/statuses/:id/source` | |
| `GET` | `v1/statuses/:id/reblogged_by` | |
| `GET` | `v1/statuses/:id/favourited_by` | |
| `POST` | `v1/statuses/:id/favourite` | |
| `POST` | `v1/statuses/:id/unfavourite` | |
| `POST` | `v1/statuses/:id/reblog` | |
| `POST` | `v1/statuses/:id/unreblog` | |
| `POST` | `v1/statuses/:id/bookmark` | |
| `POST` | `v1/statuses/:id/unbookmark` | |
| `POST` | `v1/statuses/:id/pin` | |
| `POST` | `v1/statuses/:id/unpin` | |
| `POST` | `v1/statuses/:id/react/:name` | |
| `POST` | `v1/statuses/:id/unreact/:name` | |
| `POST` | `v1/statuses/:id/translate` | |
| | | |
| `GET` | `v1/polls/:id` | |
| `POST` | `v1/polls/:id/votes` | |
| | | |
| `GET` | `v1/scheduled_statuses` | |
| `GET` | `v1/scheduled_statuses/:id` | reschedule (`PUT` method) is unimplemented |
| `DELETE` | `v1/scheduled_statuses/:id` | |
| | | |
| `GET` | `v1/streaming/health` | |
| | | |
| `GET` | `v1/timelines/public` | |
| `GET` | `v1/timelines/tag/:hashtag` | |
| `GET` | `v1/timelines/home` | |
| `GET` | `v1/timelines/list/:listId` | |
| `GET` | `v1/conversations` | |
| `GET` | `v1/markers` | |
| `POST` | `v1/markers` | |
</details>
2024-06-07 09:06:51 +02:00
## v20240607
- `GET` request is now allowed for the `latest-version` endpoint.
2024-05-22 17:01:57 +02:00
## v20240523
2024-05-20 13:08:28 +02:00
- Added `scheduledAt` optional parameter to `notes/create` (!10789)
2024-05-16 09:16:29 +02:00
## v20240516
2024-05-07 13:52:11 +02:00
- :warning: `server-info` (an endpoint to get server hardware information) now requires credentials.
- :warning: `net` (server's default network interface) has been removed from `admin/server-info`.
2024-05-06 07:26:38 +02:00
- Adding `lang` to the response of `i` and the request parameter of `i/update`.
2024-05-06 07:14:44 +02:00
2024-05-04 09:04:31 +02:00
## v20240504
- :warning: Removed `release` endpoint.
2024-04-24 08:42:23 +02:00
## v20240424
2024-04-21 05:24:41 +02:00
2024-04-21 22:56:46 +02:00
- Added `antennaLimit` field to the response of `meta` and `admin/meta`, and the request of `admin/update-meta` (optional).
2024-04-21 22:37:57 +02:00
- Added `filter` optional parameter to `notes/renotes` endpoint to filter the types of renotes. It can take the following values:
- `all` (default)
- `renote`
- `quote`
2024-04-23 16:59:03 +02:00
- :warning: Removed the following optional parameters in `notes/reactions`, as they were never taken into account due to a bug:
2024-04-21 05:24:41 +02:00
- `sinceId`
- `untilId`
2024-04-13 14:34:20 +02:00
## v20240413
2024-04-13 13:03:02 +02:00
- :warning: Removed `patrons` endpoint.
2024-04-04 23:44:16 +02:00
## v20240405
2024-04-01 05:06:59 +02:00
- Added `notes/history` endpoint.
2024-03-18 18:13:38 +01:00
## v20240319
- :warning: `followingCount` and `followersCount` in `users/show` will be `null` (instead of 0) if these values are unavailable.
- :warning: `admin/search/index-all` is removed since posts are now indexed automatically.
- New optional parameters are added to `notes/search` endpoint:
- `sinceDate`
- `untilDate`
- `withFiles`
- `searchCwAndAlt`
- Added `enableGuestTimeline` field to the response of `meta` and `admin/meta`, and the request of `admin/update-meta` (optional).
2024-03-01 03:15:40 +01:00
## v20240301
- With the addition of new features, the following endpoints are added:
- check your follow requests that haven't been approved
- `following/requests/sent`
- per-user reply mutes
- `reply-mute/create`
- `reply-mute/delete`
- `reply-mute/list`
- :warning: The following (horrible) endpoints are removed:
- `admin/vacuum`
- `reset-db`
2024-02-27 20:50:14 +01:00
## v20240228
- :warning: The following endpoints are removed:
- `charts/ap-request`
- `charts/drive`
- `charts/federation`
- `charts/hashtag`
- `charts/instance`
- `charts/notes`
- `charts/user/drive`
- `charts/user/following`
- `charts/user/notes`
- `charts/user/reactions`
- `charts/users`
2024-02-21 00:44:06 +01:00
## v20240221
2024-02-20 09:39:32 +01:00
- Added `admin/set-emoji-moderator` endpoint, where moderators can give these permissions to regular users:
- `add`: Add new custom emojis, set tag/category/license to newly added custom emojis
- `mod`: `add` permission + edit the name/category/tag/license of the existing custom emojis
- `full`: `mod` permission + delete existing custom emojis
- Emoji moderators are able to access to the endpoints under `admin/emoji/`
2024-02-20 19:25:45 +01:00
- Removed `lang` from the response of `i` and the request parameter of `i/update`.
- Added `notes/make-private` endpoint.
2024-02-20 09:39:32 +01:00
2024-02-16 16:00:23 +01:00
## v20240217
- :warning: Since the auto NSFW media detection has been removed, these endpoints are affected:
- `admin/meta`
- These parameter(s) are removed from the response field:
- `sensitiveMediaDetection`
- `sensitiveMediaDetectionSensitivity`
- `setSensitiveFlagAutomatically`
- `enableSensitiveMediaDetectionForVideos`
- `admin/update-meta`
- These parameter(s) are removed from the request field:
- `sensitiveMediaDetection`
- `sensitiveMediaDetectionSensitivity`
- `setSensitiveFlagAutomatically`
- `enableSensitiveMediaDetectionForVideos`
- `admin/show-user`
- These parameter(s) are removed from the response field:
- `autoSensitive`
- `i/update`
- These parameter(s) are removed from the request field:
- `autoSensitive`
2024-02-16 09:26:52 +01:00
- `/api/emojis` endpoint has been added.
2024-02-12 08:37:40 +01:00
## v20240212
- :warning: The field name of the response of `latest-version` has been changed from `tag_name` to `latest_version`.
2024-02-07 18:54:29 +01:00
## v1.0.5-rc
- `admin/update-meta` can now take `moreUrls` parameter, and response of `admin/meta` now includes `moreUrls`
- These URLs are used for the help menu ([related merge request](https://firefish.dev/firefish/firefish/-/merge_requests/10640))
2023-10-16 19:05:32 +02:00
- :warning: response of `meta` no longer includes the following:
- `enableTwitterIntegration`
- `enableGithubIntegration`
- `enableDiscordIntegration`
- :warning: parameter of `admin/update-meta` and response of `admin/meta` no longer include the following:
- `enableTwitterIntegration`
- `enableGithubIntegration`
- `enableDiscordIntegration`
- `twitterConsumerKey`
- `twitterConsumerSecret`
- `githubClientId`
- `githubClientSecret`
- `discordClientId`
- `discordClientSecret`
- :warning: response of `admin/show-user` no longer includes `integrations`.
- Added `lang` parameter to `notes/create` and `notes/edit`.
- :warning: `notes/translate` now requires credentials.