At this level
app.didpic · 2- app.didpic.actor.defs defs Record of the user confirming they're 18 or over. Required before flipping any adult-content label (nsfw, etc.) from 'hide' to 'blur' or 'show'. Once present, persists indefinitely — set at first opt-in, cleared only by account deletion (server-side cascade) or the dev-reset path. `method` distinguishes OS-verified (Apple Declared Age Range / Play age-signals confidently returned >=18) from self-attested (user tapped Agree in an in-app modal). Self-attested is the practical floor most apps land
- app.didpic.actor.exists query Lightweight existence check: returns 200 if the actor is a known, active didpic user (same activity filter as the admin Users page). Designed for the image CDN's known-DID gate where the heavier getProfilePublic was too slow.
- app.didpic.actor.getPrefs query The authenticated viewer's preferences.
- app.didpic.actor.getProfile query Get a profile by DID or handle.
- app.didpic.actor.getProfilePublic query Unauthenticated profile view for public web landings. Omits viewer-relative fields.
- app.didpic.actor.getProfiles query Batch fetch profiles by DID or handle. Up to 25 per call.
- app.didpic.actor.getProfilesBasic query Batch fetch minimal profile info by DID, for actors already known to the AppView. Does not resolve unseen DIDs. Up to 100 per call.
- app.didpic.actor.getSuggestedContacts query The viewer's closest contacts, for starting a new conversation.
- app.didpic.actor.getSuggestions query Suggested accounts for the viewer to follow.
- app.didpic.actor.profile record User profile record.
- app.didpic.actor.putPref procedure Write one of the authenticated viewer's preferences.
- app.didpic.actor.searchActors query Search accounts by handle or display name.
- app.didpic.admin.applyAccountLabel procedure Add a label to an account.
- app.didpic.admin.applyPostLabel procedure Add a label to a post.
- app.didpic.admin.clearClientError procedure Delete a client error row.
- app.didpic.admin.deleteActor procedure Delete an account's data.
- app.didpic.admin.deletePushToken procedure Delete a push token globally.
- app.didpic.admin.getActor query Get an actor's moderation state, profile, roles, and labels.
- app.didpic.admin.getAnalyticsOverview query Aggregate analytics for the last 30 days.
- app.didpic.admin.getAppeal query Get a single appeal.
- app.didpic.admin.getClientError query Get one client error by id.
- app.didpic.admin.getPost query Get a post or comment's moderation state and labels.
- app.didpic.admin.getPostEditHistory query Get a post's current version plus every snapshot of prior versions.
- app.didpic.admin.getPushToken query Get a push token's detail and bound actors.
- app.didpic.admin.getReport query Get a single report.
- app.didpic.admin.getScansForActor query Get an actor's scan history.
- app.didpic.admin.getScansForSubject query Get scans for a record.
- app.didpic.admin.getSubjectContext query Get the actor + post + comment + message bundle for a report/appeal subject.
- app.didpic.admin.grantRole procedure Grant a role.
- app.didpic.admin.growthStats query Content growth snapshot.
- app.didpic.admin.listAppeals query List appeals.
- app.didpic.admin.listAuditLog query List audit log entries.
- app.didpic.admin.listClientErrors query List unique client errors, newest first.
- app.didpic.admin.listPushTokensByActor query List push tokens registered to an actor.
- app.didpic.admin.listReports query List moderation reports.
- app.didpic.admin.listResyncFailures query List actors with a failed resync job.
- app.didpic.admin.listRoles query List role grants.
- app.didpic.admin.listScans query List moderation scans.
- app.didpic.admin.listSuppressedTags query List suppressed tags.
- app.didpic.admin.listUsers query List indexed actors, newest first.
- app.didpic.admin.queueCounts query Counts of open moderation items.
- app.didpic.admin.removeAccountLabel procedure Remove a label from an account.
- app.didpic.admin.removePostLabel procedure Remove a label from a post.
- app.didpic.admin.reopenAppeal procedure Re-open a resolved appeal.
- app.didpic.admin.reopenReport procedure Re-open a resolved report.
- app.didpic.admin.rescanSubject procedure Re-scan an image.
- app.didpic.admin.resolveAppeal procedure Resolve an appeal.
- app.didpic.admin.resolveReport procedure Resolve a report.
- app.didpic.admin.restoreActor procedure Restore an account to active.
- app.didpic.admin.resyncActor procedure Enqueue or reset a resync job for an actor.
- app.didpic.admin.revokeRole procedure Revoke a role.
- app.didpic.admin.stats query System status snapshot.
- app.didpic.admin.suppressActorDiscover procedure Hide every post by an actor from discover and suggestions.
- app.didpic.admin.suppressPostDiscover procedure Hide a single post from discover.
- app.didpic.admin.suppressTag procedure Suppress a tag from trending.
- app.didpic.admin.suspend procedure Suspend an account.
- app.didpic.admin.takedown procedure Take down an account, record, or DM message. Pass exactly one of did/uri/messageId.
- app.didpic.admin.testPushToken procedure Send a test Expo push to a token.
- app.didpic.admin.unsuppressActorDiscover procedure Restore an actor to discover and suggestions.
- app.didpic.admin.unsuppressPostDiscover procedure Restore a post to discover.
- app.didpic.admin.unsuppressTag procedure Reverse a tag suppression.
- app.didpic.admin.unsuspend procedure Reverse a suspension.
- app.didpic.chat.defs defs
- app.didpic.chat.deleteMessage procedure Delete a message you sent.
- app.didpic.chat.findOrCreateConversation procedure Start a conversation, or return an existing 1:1 with the same person.
- app.didpic.chat.getConversation query A single conversation the viewer participates in.
- app.didpic.chat.getMessageReactions query List who reacted to a message, and with what.
- app.didpic.chat.getMessages query Messages in a conversation, newest first.
- app.didpic.chat.getUnreadCount query Number of conversations with unread activity for the caller. Backs the Messages tab badge.
- app.didpic.chat.leaveConversation procedure Leave a group conversation.
- app.didpic.chat.listConversations query The viewer's conversations, newest activity first.
- app.didpic.chat.markRead procedure Mark a conversation as read by the caller up to its most recent message.
- app.didpic.chat.sendMessage procedure Send a message into a conversation the caller participates in.
- app.didpic.chat.setMuted procedure Mute or unmute a conversation for yourself.
- app.didpic.chat.setNickname procedure Set or clear a conversation's shared nickname.
- app.didpic.chat.setReaction procedure React to a message with a single emoji.
- app.didpic.chat.uploadMessageImage procedure Upload raw image bytes for a chat message.
- app.didpic.feed.comment record A comment on a post. Optionally includes a single image with alt text and self-applied labels — same image shape as feed.post. Either text or image (or both) must be present in practice; the lexicon doesn't enforce that since 'one of N required' isn't expressible.
- app.didpic.feed.defs defs
- app.didpic.feed.getActorLikes query Posts an actor has liked, newest like first.
- app.didpic.feed.getAuthorFeed query Posts by a single author, newest first.
- app.didpic.feed.getCommentReplies query Replies to a comment.
- app.didpic.feed.getDiscoverFeed query Network-wide discover feed.
- app.didpic.feed.getFeatured query Most-recent eligible posts (up to 4) from the viewer's following feed. Strictest filter set in the system: no labels (account or post), no discover suppression, no takedowns, no blocks. Designed for OS widgets / Live Activities / any glanceable surface that needs safe-by-default images. Always returns `{ posts: [] }` (possibly empty) instead of 404.
- app.didpic.feed.getLikes query Accounts that have liked a post or comment, newest first.
- app.didpic.feed.getPostPublic query Unauthenticated post view for public web landings. Omits viewer-relative fields and the comment thread.
- app.didpic.feed.getPostThread query A post and a page of its top-level comments.
- app.didpic.feed.getTagFeed query Chronological newest-first feed of posts using a specific hashtag. Applies the viewer's label / age-gate filters server-side.
- app.didpic.feed.getTagFeedPublic query Unauthenticated tag feed for public web landings. Returns up to `limit` most-recent posts using the hashtag, filtered to those with no labels (post or author) so the public surface never renders age-restricted imagery. `postCount` is the global tag popularity, not the size of the returned slice.
- app.didpic.feed.getTimeline query The viewer's following feed: posts by accounts they follow, plus their own, newest first.
- app.didpic.feed.getTrendingTags query Trending hashtags. Top tags by unique-DID usage in the last 7 days, with a minimum-distinct-users threshold to keep one-off coincidences off the row. Admin-suppressed tags are excluded.
- app.didpic.feed.like record A like on a didpic post or comment. The subject's collection determines what's being liked.
- app.didpic.feed.post record A single-image photo post with optional caption.
- app.didpic.feed.searchTags query Search hashtags by prefix, ordered by popularity (number of distinct records using the tag).
- app.didpic.graph.block record Block relationship. Author blocks the subject DID; reciprocal on the AppView.
- app.didpic.graph.follow record A follow relationship. Author follows the subject DID.
- app.didpic.graph.getBlocks query Actors the viewer has blocked. Newest first.
- app.didpic.graph.getFollowers query Accounts that follow the given actor. Newest follow first.
- app.didpic.graph.getFollows query Accounts the given actor follows. Newest follow first.
- app.didpic.graph.getSubscriptions query Actors the viewer is subscribed to for post alerts.
- app.didpic.graph.subscribePosts procedure Subscribe to post alerts from an actor the viewer follows.
- app.didpic.graph.unsubscribePosts procedure Cancel a post-alert subscription.
- app.didpic.identity.getFastPathToken procedure Exchange a proxied service-auth call for a short-lived direct-access token bound to the viewer's DID.
- app.didpic.identity.getSession query Return the authenticated viewer's identity along with any opaque flags clients may use to gate UI.
- app.didpic.identity.refreshFastPathToken procedure Renew a still-valid fast-path token before it expires. Confidential-client devices only — see app.didpic.identity.getFastPathToken for the public-client mint, which this does not replace.
- app.didpic.identity.resolveHandle query Resolve a handle to a DID.
- app.didpic.notification.defs defs
- app.didpic.notification.getUnreadCount query Unread notification count for the viewer.
- app.didpic.notification.listNotifications query List the viewer's notifications.
- app.didpic.notification.recordEvents procedure Submit a batch of analytics events from the mobile app.
- app.didpic.notification.registerPush procedure Bind a device push token to the authenticated viewer.
- app.didpic.notification.reportClientError procedure Submit a mobile-app crash or error report.
- app.didpic.notification.unregisterPush procedure Remove a push token binding for the viewer.
- app.didpic.notification.updateSeen procedure Mark notifications as seen up to seenAt.
- app.didpic.write.createBlock procedure Create an app.didpic.graph.block record on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only).
- app.didpic.write.createComment procedure Create an app.didpic.feed.comment record on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). image, when present, must come from a prior app.didpic.write.uploadBlob call. Either text or image (or both) should be present — matching the underlying record lexicon, this isn't enforced here either.
- app.didpic.write.createFollow procedure Create an app.didpic.graph.follow record on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only).
- app.didpic.write.createLike procedure Create an app.didpic.feed.like record on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only).
- app.didpic.write.createPost procedure Create an app.didpic.feed.post record on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). image must come from a prior app.didpic.write.uploadBlob call.
- app.didpic.write.deleteRecord procedure Delete a record by at:// URI on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). Covers unlike, unfollow, unblock, and deleting a post or comment — whichever record the URI points at.
- app.didpic.write.getSelfRecord query Read a record at rkey 'self' from the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). Returns an empty object (not an error) when the record doesn't exist.
- app.didpic.write.putProfile procedure Create or replace the authenticated viewer's app.didpic.actor.profile record at rkey 'self' on their own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). Merges over the existing record: an omitted field keeps its current stored value, an empty string clears a text field. avatar/banner, when present, must come from a prior app.didpic.write.uploadBlob call; clearAvatar/clearBanner remove the image instead.
- app.didpic.write.updatePost procedure Edit an existing app.didpic.feed.post record via putRecord on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). The image, aspectRatio, and createdAt are immutable and carried over from the existing record untouched; only text, facets, alt, and labels may change.
- app.didpic.write.uploadBlob procedure Upload raw image bytes to the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). Mirrors com.atproto.repo.uploadBlob. The returned blob ref is passed into createPost, createComment, or putProfile to attach it to a record. This endpoint applies no per-context size limit beyond a generous ceiling — the PDS enforces the real limit (post/comment 5MB, avatar 1MB, banner 2MB) when the blob is actually attached to a record.