get
View specific status

https://CounterSocial.example/api/v1/statuses/:id

View information about a status.

Returns: Status
OAuth: Public for public statuses, user token + read:statuses for private statuses
Version history:
0.0.0 - added
2.7.0 - public statuses no longer require token

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
optional
string
Bearer

Response

200: Success

{
  "id": "1",
  "created_at": "2016-03-16T14:44:31.580Z",
  "in_reply_to_id": null,
  "in_reply_to_account_id": null,
  "sensitive": false,
  "spoiler_text": "",
  "visibility": "public",
  "language": "en",
  "uri": "https://CounterSocial.social/users/Gargron/statuses/1",
  "url": "https://CounterSocial.social/@Gargron/1",
  "replies_count": 7,
  "reblogs_count": 98,
  "favourites_count": 112,
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "content": "

Hello world

"
, "reblog": null, "application": null, "account": { "id": "1", "username": "Gargron", "acct": "Gargron", "display_name": "Eugen", "locked": false, "bot": false, "created_at": "2016-03-16T14:34:26.392Z", "note": "

Developer of CounterSocial and administrator of CounterSocial.social. I post service announcements, development updates, and personal stuff.

"
, "url": "https://CounterSocial.social/@Gargron", "avatar": "https://files.CounterSocial.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "avatar_static": "https://files.CounterSocial.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "header": "https://files.CounterSocial.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "header_static": "https://files.CounterSocial.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "followers_count": 320472, "following_count": 453, "statuses_count": 61163, "last_status_at": "2019-12-05T03:03:02.595Z", "emojis": [], "fields": [ { "name": "Patreon", "value": "https://www.patreon.com/CounterSocial", "verified_at": null }, { "name": "Homepage", "value": "https://zeonfederated.com", "verified_at": "2019-07-15T18:29:57.191+00:00" } ] }, "media_attachments": [], "mentions": [], "tags": [], "emojis": [], "card": null, "poll": null }

401: Unauthorized

instance is in whitelist mode

{
  "error": "This API requires an authenticated user"
}

404: Not Found

Status does not exist, is deleted, or is private.

{
  "error": "Record not found"
}

delete
Delete status

https://CounterSocial.example/api/v1/statuses/:id

Delete one of your own statuses.

Returns: Status with source text and media_attachments or poll
OAuth: User token + write:statuses
Version history:
0.0.0 - added
2.9.0 - return source properties, for use with delete and redraft

Request

Path Parameters
:id
required
string
Local ID of a status in the database. Must be owned by authenticated account.
Headers
Authorization
required
string
Bearer

Response

200: Success

Note the special properties text and media_attachments or poll which may be used to repost the status, e.g. in case of delete-and-redraft functionality. With POST /api/v1/statuses, use text as the value for status parameter, media_attachments[n]["id"] for the media_ids array parameter, and poll properties with the corresponding parameters (e.g. poll[multiple] and poll[options], with a new poll[expires_in] and poll[hide_totals] per user input.

with media

{
  "id": "103254193998341330",
  "created_at": "2019-12-05T08:19:26.052Z",
  "in_reply_to_id": null,
  "in_reply_to_account_id": null,
  "sensitive": false,
  "spoiler_text": "",
  "visibility": "public",
  "language": "en",
  "uri": "https://CounterSocial.social/users/trwnh/statuses/103254193998341330",
  "url": "https://CounterSocial.social/@trwnh/103254193998341330",
  "replies_count": 0,
  "reblogs_count": 0,
  "favourites_count": 0,
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  "text": "test",
  "reblog": null,
  "application": {
    "name": "Web",
    "website": null
  },
  "account": {
    "id": "14715",
    "username": "trwnh",
    "acct": "trwnh",
    "display_name": "infinite love ???",
    ...
  },
  "media_attachments": [
    {
      "id": "22345792",
      "type": "image",
      "url": "https://files.CounterSocial.social/media_attachments/files/022/345/792/original/57859aede991da25.jpeg",
      "preview_url": "https://files.CounterSocial.social/media_attachments/files/022/345/792/small/57859aede991da25.jpeg",
      "remote_url": null,
      "text_url": "https://CounterSocial.social/media/2N4uvkuUtPVrkZGysms",
      "meta": {
        "original": {
          "width": 640,
          "height": 480,
          "size": "640x480",
          "aspect": 1.3333333333333333
        },
        "small": {
          "width": 461,
          "height": 346,
          "size": "461x346",
          "aspect": 1.3323699421965318
        },
        "focus": {
          "x": -0.27,
          "y": 0.51
        }
      },
      "description": "test media description",
      "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
    }
  ],
  "mentions": [],
  "tags": [],
  "emojis": [],
  "card": null,
  "poll": null
}
with poll
{
  "id": "103254222827484720",
  "created_at": "2019-12-05T08:26:45.958Z",
  "in_reply_to_id": null,
  "in_reply_to_account_id": null,
  "sensitive": false,
  "spoiler_text": "",
  "visibility": "public",
  "language": "en",
  "uri": "https://CounterSocial.social/users/trwnh/statuses/103254222827484720",
  "url": "https://CounterSocial.social/@trwnh/103254222827484720",
  "replies_count": 0,
  "reblogs_count": 0,
  "favourites_count": 0,
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  "text": "test",
  "reblog": null,
  "application": {
    "name": "Web",
    "website": null
  },
  "account": {
    "id": "14715",
    "username": "trwnh",
    "acct": "trwnh",
    "display_name": "infinite love ???",
    ...
  },
  "media_attachments": [],
  "mentions": [],
  "tags": [],
  "emojis": [],
  "card": null,
  "poll": {
    "id": "34858",
    "expires_at": "2019-12-06T08:26:45.945Z",
    "expired": false,
    "multiple": false,
    "votes_count": 1,
    "voters_count": 1,
    "voted": true,
    "own_votes": [],
    "options": [
      {
        "title": "test 1",
        "votes_count": 1
      },
      {
        "title": "test 2",
        "votes_count": 0
      }
    ],
    "emojis": []
  }
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status already deleted, does not exist, or is not owned by you

{
  "error": "Record not found"
}

get
Parent and child statuses

https://CounterSocial.example/api/v1/statuses/:id/context

View statuses above and below this status in the thread.

Returns: Context
OAuth: Public for public statuses. User token + read:statuses for private statuses.
Version history:
0.0.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
optional
string
Bearer

Response

200: Success

{
  "ancestors": [
    {
      "id": "103188938570975982",
      "created_at": "2019-11-23T19:44:00.124Z",
      "in_reply_to_id": null,
      "in_reply_to_account_id": null,
      ...
    },
    {
      "id": "103188971072973252",
      "created_at": "2019-11-23T19:52:23.398Z",
      "in_reply_to_id": "103188938570975982",
      "in_reply_to_account_id": "634458",
      ...
    },
    {
      "id": "103188982235527758",
      "created_at": "2019-11-23T19:55:08.208Z",
      "in_reply_to_id": "103188971072973252",
      "in_reply_to_account_id": "14715",
      ...
    }
  ],
  "descendants": [
    {
      "id": "103189026958574542",
      "created_at": "2019-11-23T20:06:36.011Z",
      "in_reply_to_id": "103189005915505698",
      "in_reply_to_account_id": "634458",
      ...
    }
  ]
}

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

get
Boosted by

https://CounterSocial.example/api/v1/statuses/:id/reblogged_by

View who boosted a given status.

Returns: Array of Account
OAuth: Public Version history:
0.0.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.

Response

200: Success

[
  {
    "id": "711345",
    "username": "Norman_Doors",
    "acct": "[email protected]",
    ...
  },
  ...
]

404: Not Found

Status does not exist, is deleted, or is private.

{
  "error": "Record not found"
}

get
Favourited by

https://CounterSocial.example/api/v1/statuses/:id/favourited_by

View who favourited a given status.

Returns: Array of Account
OAuth: Public
Version history:
0.0.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.

Response

200: Success

[
  {
    "id": "828600",
    "username": "fructose_dealer",
    "acct": "[email protected]",
    ...
  },
  ...
]

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

post
Favourite

https://CounterSocial.example/api/v1/statuses/:id/favourite

Add a status to your favourites list.

Returns: Status
OAuth: User token + write:favourites
Version history:
0.0.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status favourited or was already favourited

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": true,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

401: Unauthorized

{
  "error": "The access token is invalid"
}

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

post
Undo favourite

https://CounterSocial.example/api/v1/statuses/:id/unfavourite

Remove a status from your favourites list.

Returns: Status
OAuth: User token + write:favourites
Version history:
0.0.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status unfavourited or was already not favourited

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

post
Boost

https://CounterSocial.example/api/v1/statuses/:id/reblog

Reshare a status.

Returns: Status
OAuth: User token + write:statuses
Version history:
0.0.0 - added
2.8.0 - add visibility parameter

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer
Form Data Parameters
visibility
optional
string
any visibility except limited or direct (i.e. public, unlisted, private). Defaults to public. Currently unused in UI.

Response

200: Success

Status has been reblogged. Note that the top-level id has changed. The id of the boosted status is now inside the reblog property. The top-level id is the id of the reblog itself. Also note that reblogs cannot be pinned.

{
  "id": "103254401326800919",
  "created_at": "2019-12-05T09:12:09.625Z",
  ...
  "favourited": false,
  "reblogged": true,
  "muted": false,
  "bookmarked": false,
  ...
  "reblog": {
    "id": "99734435964706331",
    "created_at": "2018-03-23T17:38:40.700Z",
    ...
    "favourited": false,
    "reblogged": true,
    "muted": false,
    "bookmarked": false,
    "pinned": false,
    ...
  },
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

post
Undo boost

https://CounterSocial.example/api/v1/statuses/:id/unreblog

Undo a reshare of a status.

Returns: Status
OAuth: User token + write:statuses
Version history:
0.0.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status no longer reblogged

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

401: Unauthorized

Invalid or missing authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status deleted, does not exist, or no reblog exists

{
 "error":  "Record not found"
}

post
Bookmark

https://CounterSocial.example/api/v1/statuses/:id/bookmark

Privately bookmark a status.

Returns: Status
OAuth: User token + write:bookmarks
Version history:
3.1.0 - added

Request

Path Parameters
:id
required
string
ID of the status in the database
Headers
Authorization
required
string
Bearer

Response

200: Success

Status bookmarked

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": true,
  "pinned": false,
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

{
  "error": "Record not found"
}

post
Undo bookmark

https://CounterSocial.example/api/v1/statuses/:id/unbookmark

Remove a status from your private bookmarks.

Returns: Status
OAuth: User token + write:bookmarks
Version history:
3.1.0 - added

Request

Path Parameters
id
required
string
ID of the status in the database
Headers
Authorization
required
string
Bearer

Response

200: Success

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status does not exist, is deleted, is private, or was already not bookmarked

{
  "error": "Record not found"
}

post
Mute conversation

https://CounterSocial.example/api/v1/statuses/:id/mute

Do not receive notifications for the thread that this status is part of. Must be a thread in which you are a participant.

Returns: Status
OAuth: User token + write:mutes
Version history:
1.4.2 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status's conversation muted, or was already muted

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": true,
  "bookmarked": false,
  "pinned": false,
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

{
  "error": "Record not found"
}

post
Unmute conversation

https://CounterSocial.example/api/v1/statuses/:id/unmute

Start receiving notifications again for the thread that this status is part of.

Returns: Status
OAuth: User token + write:mutes
Version history:
1.4.2 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status's conversation unmuted, or was already unmuted

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

{
  "error": "Record not found"
}

post
Pin to profile

https://CounterSocial.example/api/v1/statuses/:id/pin

Feature one of your own public statuses at the top of your profile.

Returns: Status
OAuth: User token + write:accounts
Version history:
1.6.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database. The status should be public and authored by the authorized account.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status pinned. Note the status is not a reblog and its authoring account is your own.

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": true,
  ...
  "reblog": null,
  ...
  "account": {
    "id": "14715",
    "username": "trwnh",
    "acct": "trwnh",
    ...
  },
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status does not exist, is deleted, or you are not authorized to see it.

{
  "error": "Record not found"
}

422: Unprocessable Entity

Status is not owned by you, or is not public. You cannot pin one of your private statuses because private statuses cannot be fetched from remote sites, and must be delivered.

Not yours

{
  "error": "Validation failed: Someone else's toot cannot be pinned"
}
Private
{
  "error": "Validation failed: Non-public toot cannot be pinned"
}

post
Unpin to profile

https://CounterSocial.example/api/v1/statuses/:id/unpin

Unfeature a status from the top of your profile.

Returns: Status
OAuth: User token + write:accounts
Version history:
1.6.0 - added

Request

Path Parameters
:id
required
string
Local ID of a status in the database.
Headers
Authorization
required
string
Bearer

Response

200: Success

Status unpinned, or was already not pinned

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
  "reblog": null,
  ...
  "account": {
    "id": "14715",
    "username": "trwnh",
    "acct": "trwnh",
    ...
  },
  ...
}

401: Unauthorized

Invalid or missing Authorization header

{
  "error": "The access token is invalid"
}

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

Deprecated methods

get
Preview card

https://CounterSocial.example/api/v1/statuses/:id/card

Returns: Card
OAuth: Public
Version history:
0.0.0 - added
2.6.0 - deprecated in favor of card property inlined on Status entity
3.0.0 - removed

Request

Path Parameters
:id
required
string
ID of the status in the database

Response

200: Success

{
  "url": "https://www.youtube.com/watch?v=OMv_EPMED8Y",
  "title": "??? Brand New Friend (Christmas Song!)",
  "description": "",
  "type": "video",
  "author_name": "YOGSCAST Lewis & Simon",
  "author_url": "https://www.youtube.com/user/BlueXephos",
  "provider_name": "YouTube",
  "provider_url": "https://www.youtube.com/",
  "html": "",
  "width": 480,
  "height": 270,
  "image": "https://files.CounterSocial.social/preview_cards/images/014/179/145/original/9cf4b7cf5567b569.jpeg",
  "embed_url": ""
}

404: Not Found

Status does not exist, is deleted, or is private

{
  "error": "Record not found"
}

Last updated December 27, 2020 ?? Improve this page