{ "lexicon": 1, "id": "app.bsky.unspecced.searchPostsSkeleton", "defs": { "main": { "type": "query", "description": "Backend Posts search, returns only skeleton", "parameters": { "type": "params", "required": ["q"], "properties": { "q": { "type": "string", "description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended." }, "sort": { "type": "string", "knownValues": ["top", "latest"], "default": "latest", "description": "Specifies the ranking order of results." }, "since": { "type": "string", "description": "Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD)." }, "until": { "type": "string", "description": "Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD)." }, "mentions": { "type": "string", "format": "at-identifier", "description": "Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions." }, "author": { "type": "string", "format": "at-identifier", "description": "Filter to posts by the given account. Handles are resolved to DID before query-time." }, "lang": { "type": "string", "format": "language", "description": "Filter to posts in the given language. Expected to be based on post language field, though server may override language detection." }, "domain": { "type": "string", "description": "Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization." }, "url": { "type": "string", "format": "uri", "description": "Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching." }, "tag": { "type": "array", "items": { "type": "string", "maxLength": 640, "maxGraphemes": 64 }, "description": "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching." }, "viewer": { "type": "string", "format": "did", "description": "DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries." }, "limit": { "type": "integer", "minimum": 1, "maximum": 100, "default": 25 }, "cursor": { "type": "string", "description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set." } } }, "output": { "encoding": "application/json", "schema": { "type": "object", "required": ["posts"], "properties": { "cursor": { "type": "string" }, "hitsTotal": { "type": "integer", "description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits." }, "posts": { "type": "array", "items": { "type": "ref", "ref": "app.bsky.unspecced.defs#skeletonSearchPost" } } } } }, "errors": [{ "name": "BadQueryString" }] } } }