social.coves.community.post.getStatus

coves.social

Documentation

Get one community's admission decision about one post. Intentionally UNAUTHENTICATED: the caller with the strongest need is an author on another server whose post is pending on this host, and they have no account here to authenticate with. It is also the only way a rejection is reachable at all - a submission refused before it was ever accepted writes no community record, so there is no repository record and no firehose event carrying it, and without this endpoint an author whose post vanished could never learn that it was refused or why. The accepted cost is that anyone who can name a post AT-URI learns its status in a community. Both parameters are required: a post carries independent decisions from several communities, so there is no single status of a post.

main query

Get one community's admission decision about one post. Intentionally UNAUTHENTICATED: the caller with the strongest need is an author on another server whose post is pending on this host, and they have no account here to authenticate with. It is also the only way a rejection is reachable at all - a submission refused before it was ever accepted writes no community record, so there is no repository record and no firehose event carrying it, and without this endpoint an author whose post vanished could never learn that it was refused or why. The accepted cost is that anyone who can name a post AT-URI learns its status in a community. Both parameters are required: a post carries independent decisions from several communities, so there is no single status of a post.

Parameters

community string did Required

DID of the community whose decision is being asked about

post string at-uri Required

AT-URI of the post, in the author's repository

Output

Encodingapplication/json
acceptanceUri stringat-uri Optional

AT-URI of the live community acceptance record, so the caller can read the signed attestation rather than trusting this AppView's summary of it. Present only while an acceptance stands.

decisionAt stringdatetime Optional

When the refusal above was decided

decisionCode string Optional

Why the post was refused. Present only for rejected and removed. The vocabulary is open and spans both the codes a community publishes in a removal record and the admission-time codes that never reach a repository.

status string Required

The community's decision state. Reported verbatim rather than collapsed: an author who edited an accepted post needs pending_reacceptance to be distinguishable from a post that was never accepted, because the two have completely different next steps.

Known values: pending, accepted, pending_reacceptance, rejected, removed

Errors

InvalidRequest A missing or malformed post or community parameter
NotFound This community has no decision about this post
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://api.bsky.social)
Parameters
DID of the community whose decision is being asked about
AT-URI of the post, in the author's repository
View raw schema
{
  "description": "Get one community's admission decision about one post. Intentionally UNAUTHENTICATED: the caller with the strongest need is an author on another server whose post is pending on this host, and they have no account here to authenticate with. It is also the only way a rejection is reachable at all - a submission refused before it was ever accepted writes no community record, so there is no repository record and no firehose event carrying it, and without this endpoint an author whose post vanished could never learn that it was refused or why. The accepted cost is that anyone who can name a post AT-URI learns its status in a community. Both parameters are required: a post carries independent decisions from several communities, so there is no single status of a post.",
  "errors": [
    {
      "description": "A missing or malformed post or community parameter",
      "name": "InvalidRequest"
    },
    {
      "description": "This community has no decision about this post",
      "name": "NotFound"
    }
  ],
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "acceptanceUri": {
          "description": "AT-URI of the live community acceptance record, so the caller can read the signed attestation rather than trusting this AppView's summary of it. Present only while an acceptance stands.",
          "format": "at-uri",
          "type": "string"
        },
        "decisionAt": {
          "description": "When the refusal above was decided",
          "format": "datetime",
          "type": "string"
        },
        "decisionCode": {
          "description": "Why the post was refused. Present only for rejected and removed. The vocabulary is open and spans both the codes a community publishes in a removal record and the admission-time codes that never reach a repository.",
          "type": "string"
        },
        "status": {
          "description": "The community's decision state. Reported verbatim rather than collapsed: an author who edited an accepted post needs pending_reacceptance to be distinguishable from a post that was never accepted, because the two have completely different next steps.",
          "knownValues": [
            "pending",
            "accepted",
            "pending_reacceptance",
            "rejected",
            "removed"
          ],
          "type": "string"
        }
      },
      "required": [
        "status"
      ],
      "type": "object"
    }
  },
  "parameters": {
    "properties": {
      "community": {
        "description": "DID of the community whose decision is being asked about",
        "format": "did",
        "type": "string"
      },
      "post": {
        "description": "AT-URI of the post, in the author's repository",
        "format": "at-uri",
        "type": "string"
      }
    },
    "required": [
      "post",
      "community"
    ],
    "type": "params"
  },
  "type": "query"
}

Lexicon Garden

@