town.delve.feed.searchPostsV2

delve.town

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Find posts matching a search query or filters, returning search hits for matching post records.",
      "errors": [
        {
          "name": "BadQueryString"
        }
      ],
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cursor": {
              "description": "Cursor for the next page of results.",
              "type": "string"
            },
            "detectedQueryLanguages": {
              "description": "Query languages detected for CJK, Thai, or Arabic text. Empty or omitted for other scripts.",
              "items": {
                "knownValues": [
                  "ja",
                  "zh",
                  "ko",
                  "th",
                  "ar"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "hitsTotal": {
              "description": "Estimated total number of matching hits. May be rounded or truncated.",
              "type": "integer"
            },
            "posts": {
              "description": "Hydrated views of matching posts.",
              "items": {
                "ref": "town.delve.feed.defs#postView",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "posts"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "allTime": {
            "description": "Search the full index instead of the recent-post window.",
            "type": "boolean"
          },
          "authors": {
            "description": "Include posts by any of these authors. Handles are resolved to DIDs before searching.",
            "items": {
              "format": "at-identifier",
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "description": "Optional pagination cursor.",
            "type": "string"
          },
          "domains": {
            "description": "Include posts that link to any of these domains.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "embeddedAtUris": {
            "description": "Include posts that embed any of these AT URIs.",
            "items": {
              "format": "at-uri",
              "type": "string"
            },
            "type": "array"
          },
          "excludeAuthors": {
            "description": "Exclude posts by any of these authors. Handles are resolved to DIDs before searching.",
            "items": {
              "format": "at-identifier",
              "type": "string"
            },
            "type": "array"
          },
          "excludeDomains": {
            "description": "Exclude posts that link to any of these domains.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "excludeEmbeddedAtUris": {
            "description": "Exclude posts that embed any of these AT URIs.",
            "items": {
              "format": "at-uri",
              "type": "string"
            },
            "type": "array"
          },
          "excludeHashtags": {
            "description": "Exclude posts tagged with any of these hashtags. Do not include the hash (#) prefix.",
            "items": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            },
            "type": "array"
          },
          "excludeLanguages": {
            "description": "Exclude posts whose language matches any of these language codes.",
            "items": {
              "format": "language",
              "type": "string"
            },
            "type": "array"
          },
          "excludeMentions": {
            "description": "Exclude posts that mention any of these accounts. Handles are resolved to DIDs before searching.",
            "items": {
              "format": "at-identifier",
              "type": "string"
            },
            "type": "array"
          },
          "excludeReplies": {
            "description": "Exclude replies from results. Mutually exclusive with repliesOnly.",
            "type": "boolean"
          },
          "excludeUrls": {
            "description": "Exclude posts that link to any of these URLs.",
            "items": {
              "format": "uri",
              "type": "string"
            },
            "type": "array"
          },
          "following": {
            "description": "Include only posts from accounts followed by the viewer.",
            "type": "boolean"
          },
          "hasMedia": {
            "description": "Include only posts with media.",
            "type": "boolean"
          },
          "hasVideo": {
            "description": "Include only posts with video.",
            "type": "boolean"
          },
          "hashtags": {
            "description": "Include posts tagged with any of these hashtags. Do not include the hash (#) prefix.",
            "items": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            },
            "type": "array"
          },
          "languages": {
            "description": "Include posts whose language matches any of these language codes.",
            "items": {
              "format": "language",
              "type": "string"
            },
            "type": "array"
          },
          "limit": {
            "default": 25,
            "description": "Maximum number of results to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "mentions": {
            "description": "Include posts that mention any of these accounts. Handles are resolved to DIDs before searching.",
            "items": {
              "format": "at-identifier",
              "type": "string"
            },
            "type": "array"
          },
          "query": {
            "description": "Search query string. A query or at least one filter is required.",
            "type": "string"
          },
          "queryLanguage": {
            "description": "Language analyzer hint for the query text. If unset, the server auto-detects when possible.",
            "knownValues": [
              "ja",
              "zh",
              "ko",
              "th",
              "ar"
            ],
            "type": "string"
          },
          "repliesOnly": {
            "description": "Include only replies. Mutually exclusive with excludeReplies.",
            "type": "boolean"
          },
          "replyParentUri": {
            "description": "Include only direct replies to this parent post URI.",
            "format": "at-uri",
            "type": "string"
          },
          "since": {
            "description": "Include posts indexed at or after this timestamp. Can be a datetime, or just an ISO date (YYYY-MM-DD).",
            "type": "string"
          },
          "sort": {
            "description": "Ranking order for results. 'recent' sorts by recency; 'top' uses search ranking.",
            "knownValues": [
              "recent",
              "top"
            ],
            "type": "string"
          },
          "threadRootUri": {
            "description": "Include only posts in the thread rooted at this post URI.",
            "format": "at-uri",
            "type": "string"
          },
          "until": {
            "description": "Include posts indexed before this timestamp. Defaults to the current time. Can be a datetime, or just an ISO date (YYYY-MM-DD).",
            "type": "string"
          },
          "urls": {
            "description": "Include posts that link to any of these URLs.",
            "items": {
              "format": "uri",
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [],
        "type": "params"
      },
      "type": "query"
    }
  },
  "id": "town.delve.feed.searchPostsV2",
  "lexicon": 1
}

Validate Record

Validate a record against town.delve.feed.searchPostsV2

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:qzqct2rrq4u2gmy5g3mjxske
CID
bafyreigizhot54npuwp2f3owqnqyy7er6yngdksjvdhurq6gtn35sv2s3m
Indexed At
2026-09-11 20:05 UTC
AT-URI
at://did:plc:qzqct2rrq4u2gmy5g3mjxske/com.atproto.lexicon.schema/town.delve.feed.searchPostsV2

Referenced Schemas (1)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Find posts matching a search query or filters, returning search hits for matching post records.

  • town.delve.feed.searchPosts querynot from the namespace authority

    Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.

  • Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.

  • town.delve.unspecced.searchPostsSkeleton querynot from the namespace authority

    Backend Posts search, returns only skeleton

  • Full-text search over visible posts, across every community or restricted to one. Results honour the same admission, deletion and viewer-block rules as social.coves.feed.getDiscover and social.coves.feed.getCommunity.

Lexicon Garden

@