Appearance
GoToSocial
4 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /admin/gotosocial/check | Check Connection |
POST | /admin/gotosocial/post | Post Status |
GET | /admin/gotosocial/preview/{kind} | Preview Post |
POST | /admin/gotosocial/run/{kind} | Run Post |
gotosocial
Check Connection
GET
/admin/gotosocial/check
Round-trip the GoToSocial token + read instance metadata.
Returns {"ok": True, "account": {...}, "instance": {...}} on
success, or {"ok": False, "status": <int>, ...} when either
call fails — the operator UI can render the failure detail
directly. Never raises: status_code == 0 from the wrapper
means the request didn't reach the server (DNS / connect timeout
/ TLS error), which we surface as ok: False like any other
error.
Parameters
Header Parameters
authorization
x-api-key
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Post Status
POST
/admin/gotosocial/post
Manual ad-hoc post to GoToSocial.
Wraps :meth:GotoSocial.post_status with no extra processing —
the operator types a message, picks a visibility, hits Send.
Same token, same instance, no preview / scheduling.
Returns the raw upstream payload (id + url + content + …) on
success so the UI can render a "view post" link straight to the
new status. On a non-200 from upstream we map to a 502 with the
error detail attached, so axios on the frontend surfaces the
failure naturally rather than rendering a "successful" empty
response.
Parameters
Header Parameters
authorization
x-api-key
Request Body
application/json
JSON "status": "string", "visibility": "public"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Preview Post
Run Post
POST
/admin/gotosocial/run/{kind}
Fire one scheduled post now. Bypasses the enable flag (admin
intent) but still dedups on the day/week key.
Parameters
Header Parameters
authorization
x-api-key
Path Parameters
kind*
Type
Requiredstring
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}