pnut.io API

pnut.io API as documented publicly: 201 operations. Contract generated from the documentation by API Evangelist (2026-10-28); not the provider's own document.

Operations 201

GET /apps/me/users/ids Retrieve a list of all user IDs that authorize the requesting app. #
GET /apps/me/users/tokens Retrieve a list of all user token objects that authorize the requesting app. #
GET /badges Retrieve a list of all badges. #
GET /badges/{badgeId} Retrieve a badge object. #
GET /channels Retrieve a list of specified channel objects. #
GET /channels/streams/explore Retrieve a list of explore streams. #
GET /channels/streams/explore/{slug} Retrieve a list of channels in an explore stream. #
GET /channels/{channelId} Retrieve a channel by its ID. #
GET /channels/{channelId}/messages Retrieve paginated messages from a channel. #
GET /channels/{channelId}/messages/{messageId} Retrieve a message from a channel. #
POST /channels/{channelId}/messages/{messageId}/report Report a message in a channel for abuse. #
DELETE /channels/{channelId}/messages/{messageId}/sticky Un-sticky a message. #
PUT /channels/{channelId}/messages/{messageId}/sticky Sticky a message. #
GET /channels/{channelId}/messages/{messageId}/thread Retrieve messages in the same thread of a channel. #
DELETE /channels/{channelId}/mute Delete a subscription mute for a channel. #
PUT /channels/{channelId}/mute Mute subscriptions for a channel. #
GET /channels/{channelId}/sticky_messages Retrieve sticky messages in a channel. #
GET /clients/{clientId} Retrieve details on a public client, by client ID. #
GET /feed/rss/channels/{channelId}/messages Messages are exposed as RSS. #
GET /feed/rss/posts/tags/{tag} The API exposes tagged posts as RSS. #
GET /feed/rss/users/{userId}/posts A user's posts are exposed as RSS. #
DELETE /files Delete a list of files. #
GET /files Retrieve a list of specified file objects. #
POST /files/provision Prime the upload server for files to be uploaded. #
GET /files/{fileId} Retrieve a file object by ID. #
PATCH /files/{fileId} Update a file's details. #
POST /markers Set a list of stream markers #
GET /polls Retrieve a list of specified poll objects. #
POST /polls Create a poll. #
DELETE /polls/{pollId} Delete a poll. #
GET /polls/{pollId} Retrieve a poll object. #
PUT /polls/{pollId}/response Respond to a poll. #
GET /posts Retrieve a list of specified post objects. #
POST /posts Create a post. #
GET /posts/streams/explore Retrieve a list of explore streams. #
GET /posts/streams/explore/{slug} Retrieve a list of posts in an explore stream. #
GET /posts/streams/global A stream of all human-type users' public posts. #
GET /posts/streams/me The authenticated user's stream of posts from their followers and themself. #
GET /posts/streams/unified A combined Personal Stream including the authenticated user's mentions. #
GET /posts/tags/{tag} A stream of all posts that include the specified tag. #
DELETE /posts/{postId} Delete a post. #
GET /posts/{postId} Retrieve a post object. #
PUT /posts/{postId} Edit or "revise" a post. #
DELETE /posts/{postId}/bookmark Delete a bookmark. #
PUT /posts/{postId}/bookmark Bookmark a post. #
POST /posts/{postId}/report Report a post for abuse. #
DELETE /posts/{postId}/repost Delete a repost. #
PUT /posts/{postId}/repost Repost another post. #
GET /posts/{postId}/revisions Retrieve a list of previous versions of a post, not including the most recent. #
GET /posts/{postId}/thread Retrieve posts within a thread. #
DELETE /streams Delete all app streams for the authorized app. #
GET /streams Get all app streams for the authenticated app. #
POST /streams Create an app stream for the authenticated app. #
DELETE /streams/{streamKey} Delete a specific app stream by its key. #
GET /streams/{streamKey} Get a specific app stream by its key. #
PUT /streams/{streamKey} Update an app stream. #
GET /sys/config Retrieve a list of parameters for interacting with the API. #
GET /sys/ops/{opsId} Retrieve the status of a long-running operation. #
GET /sys/stats Retrieve basic statistics for the network. #
DELETE /token Delete the currently authenticated token. #
GET /token Retrieve an object with the currently authenticated token, username, and user ID. #
GET /users Retrieve a list of specified user objects. #
PATCH /users/me Updates only specified parts of the authenticated user's profile. #
PUT /users/me Replaces the authenticated user's profile. #
DELETE /users/me/avatar This endpoint will delete the existing user avatar (if not already is_default), and revert to their default personalized identicon. #
POST /users/me/avatar Uploads a new avatar image for the authenticated user. #
GET /users/me/badges Retrieve a list of all badges for the authenticated user. #
GET /users/me/channels Retrieve a list of channels created by the authenticated user. #
GET /users/me/channels/existing_pm Retrieve a Private Message channel for a set of users, if one exists. #
GET /users/me/channels/muted Retrieve a list of channels the authenticated user has muted. #
DELETE /users/me/channels/num_unread Mark all unread messages as read for the specified channel types for the authenticated user. #
GET /users/me/channels/num_unread Retrieve the number of unread messages for the authenticated user. #
DELETE /users/me/cover This endpoint will delete the existing user cover (if not already is_default), and revert to the default white cover. #
POST /users/me/cover Uploads a new cover image for the authenticated user. #
GET /users/me/files Retrieve a list of files created by the authenticated user. #
GET /users/me/messages Retrieve a paginated list of messages created by the authenticated user. #
GET /users/me/polls Retrieve a list of polls created by the authenticated user. #
GET /users/me/polls/responses Retrieve a list of responses to polls created by the authenticated user. #
DELETE /users/me/streams/{connectionId} Delete a user stream. #
GET /users/{userId} Retrieve a user object. #
GET /users/{userId}/avatar This endpoint will return an HTTP 302 redirect to the user's current avatar image. #
DELETE /users/{userId}/block Unblock a user. #
PUT /users/{userId}/block Block a user. #
GET /users/{userId}/blocked Retrieve a list of blocked users. #
GET /users/{userId}/bookmarks Retrieve a list of bookmarks made by the specified user. #
GET /users/{userId}/clients Retrieve a list of active clients created by a user. #
GET /users/{userId}/cover This endpoint will return an HTTP 302 redirect to the user's current cover image. #
DELETE /users/{userId}/follow Unfollow a user. #
PUT /users/{userId}/follow Follow a user. #
GET /users/{userId}/followers Retrieve a list of user objects that are following the specified user. #
GET /users/{userId}/following Retrieve a list of user objects that the specified user is following. #
GET /users/{userId}/mentions Posts mentioning the specified user. #
DELETE /users/{userId}/mute Unmute a user. #
PUT /users/{userId}/mute Mute a user. #
GET /users/{userId}/muted Retrieve a list of muted users. #
GET /users/{userId}/posts Posts created by the specified user. #
GET /v1/apps/me/users/ids GET /v1/apps/me/users/ids #
GET /v1/apps/me/users/tokens GET /v1/apps/me/users/tokens #
GET /v1/badges GET /v1/badges #
GET /v1/badges/1 GET /v1/badges/1 #
GET /v1/channels GET /v1/channels #
GET /v1/channels/2/messages GET /v1/channels/2/messages #
PUT /v1/channels/2/mute PUT /v1/channels/2/mute #
DELETE /v1/channels/4/mute DELETE /v1/channels/4/mute #
GET /v1/channels/5 GET /v1/channels/5 #
GET /v1/channels/5/messages/{messageid} GET /v1/channels/5/messages/{messageId} #
DELETE /v1/channels/5/messages/{messageid}/sticky DELETE /v1/channels/5/messages/{messageId}/sticky #
PUT /v1/channels/5/messages/{messageid}/sticky PUT /v1/channels/5/messages/{messageId}/sticky #
GET /v1/channels/5/messages/{messageid}/thread GET /v1/channels/5/messages/{messageId}/thread #
GET /v1/channels/5/sticky_messages GET /v1/channels/5/sticky_messages #
GET /v1/channels/messages GET /v1/channels/messages #
GET /v1/channels/streams/explore GET /v1/channels/streams/explore #
GET /v1/channels/streams/explore/conversations GET /v1/channels/streams/explore/conversations #
GET /v1/channels/{channelid}/messages/0/report GET /v1/channels/{channelId}/messages/0/report #
GET /v1/clients/3PFPMSet53RutGINA8e5HWqYg_UCDHad GET /v1/clients/3PFPMSet53RutGINA8e5HWqYg_UCDHad #
DELETE /v1/files DELETE /v1/files #
GET /v1/files GET /v1/files #
POST /v1/files POST /v1/files #
POST /v1/files/provision POST /v1/files/provision #
GET /v1/files/{fileid} GET /v1/files/{fileId} #
PUT /v1/files/{fileid} PUT /v1/files/{fileId} #
POST /v1/markers POST /v1/markers #
GET /v1/polls GET /v1/polls #
POST /v1/polls POST /v1/polls #
GET /v1/polls/1 GET /v1/polls/1 #
PUT /v1/polls/1/response PUT /v1/polls/1/response #
DELETE /v1/polls/{pollid} DELETE /v1/polls/{pollId} #
GET /v1/posts GET /v1/posts #
POST /v1/posts POST /v1/posts #
GET /v1/posts/streams/explore GET /v1/posts/streams/explore #
GET /v1/posts/streams/explore/conversations GET /v1/posts/streams/explore/conversations #
GET /v1/posts/streams/global GET /v1/posts/streams/global #
GET /v1/posts/streams/me GET /v1/posts/streams/me #
GET /v1/posts/streams/unified GET /v1/posts/streams/unified #
GET /v1/posts/tags/MondayNightDanceParty GET /v1/posts/tags/MondayNightDanceParty #
DELETE /v1/posts/{postid} DELETE /v1/posts/{postId} #
GET /v1/posts/{postid} GET /v1/posts/{postId} #
PUT /v1/posts/{postid} PUT /v1/posts/{postId} #
DELETE /v1/posts/{postid}/bookmark DELETE /v1/posts/{postId}/bookmark #
PUT /v1/posts/{postid}/bookmark PUT /v1/posts/{postId}/bookmark #
POST /v1/posts/{postid}/report POST /v1/posts/{postId}/report #
DELETE /v1/posts/{postid}/repost DELETE /v1/posts/{postId}/repost #
PUT /v1/posts/{postid}/repost PUT /v1/posts/{postId}/repost #
GET /v1/posts/{postid}/revisions GET /v1/posts/{postId}/revisions #
GET /v1/posts/{postid}/thread GET /v1/posts/{postId}/thread #
GET /v1/presence GET /v1/presence #
DELETE /v1/streams DELETE /v1/streams #
GET /v1/streams GET /v1/streams #
POST /v1/streams POST /v1/streams #
GET /v1/streams/4 GET /v1/streams/4 #
DELETE /v1/streams/butterball DELETE /v1/streams/butterball #
PUT /v1/streams/butterball PUT /v1/streams/butterball #
GET /v1/sys/config GET /v1/sys/config #
GET /v1/sys/ops/5c689c8d-5d59-4974-8705-f20b7abef338 GET /v1/sys/ops/5c689c8d-5d59-4974-8705-f20b7abef338 #
GET /v1/sys/stats GET /v1/sys/stats #
DELETE /v1/token DELETE /v1/token #
GET /v1/token GET /v1/token #
GET /v1/users GET /v1/users #
GET /v1/users/1 GET /v1/users/1 #
GET /v1/users/1/bookmarks GET /v1/users/1/bookmarks #
GET /v1/users/1/presence GET /v1/users/1/presence #
GET /v1/users/3/following GET /v1/users/3/following #
GET /v1/users/8/clients GET /v1/users/8/clients #
GET /v1/users/9/mentions GET /v1/users/9/mentions #
GET /v1/users/9/posts GET /v1/users/9/posts #
GET /v1/users/@doctorlinguist/avatar GET /v1/users/@doctorlinguist/avatar #
GET /v1/users/@shawn/followers GET /v1/users/@shawn/followers #
DELETE /v1/users/@testuser/block DELETE /v1/users/@testuser/block #
PUT /v1/users/@testuser/block PUT /v1/users/@testuser/block #
DELETE /v1/users/@testuser/mute DELETE /v1/users/@testuser/mute #
PUT /v1/users/@testuser/mute PUT /v1/users/@testuser/mute #
PATCH /v1/users/me PATCH /v1/users/me #
PUT /v1/users/me PUT /v1/users/me #
DELETE /v1/users/me/avatar DELETE /v1/users/me/avatar #
POST /v1/users/me/avatar POST /v1/users/me/avatar #
GET /v1/users/me/badges GET /v1/users/me/badges #
GET /v1/users/me/blocked GET /v1/users/me/blocked #
GET /v1/users/me/channels GET /v1/users/me/channels #
GET /v1/users/me/channels/existing_pm GET /v1/users/me/channels/existing_pm #
GET /v1/users/me/channels/muted GET /v1/users/me/channels/muted #
DELETE /v1/users/me/channels/num_unread DELETE /v1/users/me/channels/num_unread #
GET /v1/users/me/channels/num_unread GET /v1/users/me/channels/num_unread #
DELETE /v1/users/me/cover DELETE /v1/users/me/cover #
POST /v1/users/me/cover POST /v1/users/me/cover #
GET /v1/users/me/files GET /v1/users/me/files #
GET /v1/users/me/messages GET /v1/users/me/messages #
GET /v1/users/me/muted GET /v1/users/me/muted #
GET /v1/users/me/polls GET /v1/users/me/polls #
GET /v1/users/me/polls/responses GET /v1/users/me/polls/responses #
PUT /v1/users/me/presence PUT /v1/users/me/presence #
GET /v1/users/me/streams GET /v1/users/me/streams #
GET /v1/users/suggested GET /v1/users/suggested #
GET /v1/users/{userid}/cover GET /v1/users/{userId}/cover #
DELETE /v1/users/{userid}/follow DELETE /v1/users/{userId}/follow #
PUT /v1/users/{userid}/follow PUT /v1/users/{userId}/follow #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pnut:pnut-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pnut-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: pnut.io API
  version: '2026-10-28'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-28: 201 operation(s) read from 40 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; pnut.io has published no machine-readable contract
    that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 104
    documentation: 97
    pages-with-code: 36
    pages-read: 40
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-28'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://pnut.io/docs/resources/clients
  - https://pnut.io/docs/resources/files
  - https://pnut.io/docs/resources/token
  - https://pnut.io/docs/resources/users
  - https://pnut.io/docs/resources/channels
  - https://pnut.io/docs/resources/other/rss
  - https://pnut.io/docs/resources/app-streams
  - https://pnut.io/docs/resources/files/lookup
  - https://pnut.io/docs/resources/other/system
  - https://pnut.io/docs/resources/polls/lookup
  - https://pnut.io/docs/resources/polls/search
  - https://pnut.io/docs/resources/posts/lookup
  - https://pnut.io/docs/resources/posts/report
  - https://pnut.io/docs/resources/posts/search
  - https://pnut.io/docs/resources/user-streams
  - https://pnut.io/docs/resources/users/badges
  - https://pnut.io/docs/resources/users/lookup
  - https://pnut.io/docs/resources/users/muting
  - https://pnut.io/docs/resources/users/search
  - https://pnut.io/docs/resources/posts/explore
  - https://pnut.io/docs/resources/posts/reposts
  - https://pnut.io/docs/resources/posts/streams
  - https://pnut.io/docs/resources/posts/threads
  - https://pnut.io/docs/resources/stream-marker
  - https://pnut.io/docs/resources/users/profile
  - https://pnut.io/docs/resources/users/blocking
  - https://pnut.io/docs/resources/users/presence
  - https://pnut.io/docs/resources/channels/lookup
  - https://pnut.io/docs/resources/channels/muting
  - https://pnut.io/docs/resources/channels/search
  - https://pnut.io/docs/resources/files/lifecycle
  - https://pnut.io/docs/resources/messages/lookup
  - https://pnut.io/docs/resources/messages/report
  - https://pnut.io/docs/resources/messages/search
  - https://pnut.io/docs/resources/messages/sticky
  - https://pnut.io/docs/resources/polls/lifecycle
  - https://pnut.io/docs/resources/posts/bookmarks
  - https://pnut.io/docs/resources/posts/lifecycle
  - https://pnut.io/docs/resources/users/following
  - https://pnut.io/docs/resources/channels/explore
servers:


# --- truncated at 32 KB (195 KB total) ---
# Full source: https://artifacts.apis.io/pnut/openapi/_ae-authored/pnut-openapi-generated.yml