Skip to content
Median
Esc
↑↓navigate↵open⌘Jpreview

List posts

One state’s posts, public by default, in the board’s own order unless sort says otherwise. search matches titles and bodies.

GET/board/posts
Authorization
AuthorizationBearer token · headerrequired
`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Query parameters
statestring
Allowed:pendingpublic
sortstring
Allowed:trendingtopnew
boardIdstring
statusIdstring
searchstring
Responses
200The posts.
postsobject[]
Show properties
Array of object
idstring
numberinteger
pathstring
titlestring
excerptstring
boardIdstring
statusIdstring
tagIdsstring[]
statestring
Allowed:pendingpublic
isSpamboolean
pinnedboolean
votesinteger
commentsinteger
createdAtinteger
authorobject
Show properties
namestring
isTeamboolean
emailstring | null
hasSignalboolean
401The bearer token is missing, revoked, or expired.
errorobject
Show properties
codestring
messagestring
404Not one of yours, or not there at all.
errorobject
Show properties
codestring
messagestring
429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobject
Show properties
codestring
messagestring
Request
curl -X GET "https://api.median.sh/v1/board/posts" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "posts": [
    {
      "id": "string",
      "number": 0,
      "path": "string",
      "title": "string",
      "excerpt": "string",
      "boardId": "string",
      "statusId": "string",
      "tagIds": [
        "string"
      ],
      "state": "pending",
      "isSpam": true,
      "pinned": true,
      "votes": 0,
      "comments": 0,
      "createdAt": 0,
      "author": {
        "name": "string",
        "isTeam": true,
        "email": "string"
      },
      "hasSignal": true
    }
  ]
}