mirror of
https://git.sr.ht/~tsileo/microblog.pub
synced 2024-12-22 21:24:28 +00:00
217 lines
4 KiB
Markdown
217 lines
4 KiB
Markdown
|
## API
|
||
|
|
||
|
Your admin API key can be found at `config/admin_api_key.key`.
|
||
|
|
||
|
## ActivityPub API
|
||
|
|
||
|
### GET /
|
||
|
|
||
|
Returns the actor profile, with links to all the "standard" collections.
|
||
|
|
||
|
### GET /tags/:tag
|
||
|
|
||
|
Special collection that reference notes with the given tag.
|
||
|
|
||
|
### GET /stream
|
||
|
|
||
|
Special collection that returns the stream/inbox as displayed in the UI.
|
||
|
|
||
|
## User API
|
||
|
|
||
|
The user API is used by the admin UI (and requires a CSRF token when used with a regular user session), but it can also be accessed with an API key.
|
||
|
|
||
|
All the examples are using [HTTPie](https://httpie.org/).
|
||
|
|
||
|
### POST /api/note/delete{?id}
|
||
|
|
||
|
Deletes the given note `id` (the note must from the instance outbox).
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/note/delete Authorization:'Bearer <token>' id=http://microblob.pub/outbox/<note_id>/activity
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"activity": "https://microblog.pub/outbox/<delete_id>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/note/pin{?id}
|
||
|
|
||
|
Adds the given note `id` (the note must from the instance outbox) to the featured collection (and pins it on the homepage).
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/note/pin Authorization:'Bearer <token>' id=http://microblob.pub/outbox/<note_id>/activity
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"pinned": true
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/note/unpin{?id}
|
||
|
|
||
|
Removes the given note `id` (the note must from the instance outbox) from the featured collection (and un-pins it).
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/note/unpin Authorization:'Bearer <token>' id=http://microblob.pub/outbox/<note_id>/activity
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"pinned": false
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/like{?id}
|
||
|
|
||
|
Likes the given activity.
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/like Authorization:'Bearer <token>' id=http://activity-iri.tld
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"activity": "https://microblog.pub/outbox/<like_id>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/boost{?id}
|
||
|
|
||
|
Boosts/Announces the given activity.
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/boost Authorization:'Bearer <token>' id=http://activity-iri.tld
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"activity": "https://microblog.pub/outbox/<announce_id>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/block{?actor}
|
||
|
|
||
|
Blocks the given actor, all activities from this actor will be dropped after that.
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/block Authorization:'Bearer <token>' actor=http://actor-iri.tld/
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"activity": "https://microblog.pub/outbox/<block_id>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/follow{?actor}
|
||
|
|
||
|
Follows the given actor.
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `id` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/follow Authorization:'Bearer <token>' actor=http://actor-iri.tld/
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"activity": "https://microblog.pub/outbox/<follow_id>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### POST /api/new_note{?content,reply}
|
||
|
|
||
|
Creates a new note. `reply` is the IRI of the "replied" note if any.
|
||
|
|
||
|
Answers a **201** (Created) status code.
|
||
|
|
||
|
You can pass the `content` and `reply` via JSON, form data or query argument.
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http POST https://microblog.pub/api/new_note Authorization:'Bearer <token>' content=hello
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"activity": "https://microblog.pub/outbox/<create_id>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
### GET /api/stream
|
||
|
|
||
|
|
||
|
#### Example
|
||
|
|
||
|
```shell
|
||
|
$ http GET https://microblog.pub/api/stream Authorization:'Bearer <token>'
|
||
|
```
|
||
|
|
||
|
#### Response
|
||
|
|
||
|
```json
|
||
|
```
|
||
|
|
||
|
|