findPosts
Blog-style articles. content is Lexical richText (call listAvailableBlocks for richTextFeatures + inline-block list). PUBLIC AUTHOR: by default published AS the organization — set authorMode: "organization" (brand voice from the branding global). To publish AS a team member, set authorMode: "person" + teamAuthor: <team-member-id> (find the id via the team find tool — it lists members with id + name) and call getPersona(<id>) for their writing voice (style). The author field (relation to users) is the INTERNAL "created by" only — NOT the public author; it defaults to the user your key is bound to. Use categories+tags for taxonomy. SCHEDULING: to publish (or unpublish) at a FUTURE date, keep _status:"draft" and call the schedulePost tool with publishAt/unpublishAt — do NOT set a future publishedAt (the post stays a draft until the scheduled time, then auto-publishes). posts collection. Drafts: yes (publish workflow; a find WITHOUT draft:true returns the published main-table state only). Public read: yes via /api/agents. MCP capabilities: find, create, update, delete. ⚠ delete is PERMANENT (hard-delete; the admin Trash does NOT catch MCP deletes). Before writing public text here, call getWritingGuidelines with this collection and the locale (brand voice, writing rules, fixed terms, SEO rules, taken keywords, field rules). Fields: title (localized), slug (localized), excerpt (textarea, localized), coverImage (upload: media|brand), content (richText, localized), author (rel: users), authorMode (enum: organization (Organisation)|person (Person (team member))), teamAuthor (rel: team), publishedAt (date), categories (rel-array: categories), tags (rel-array: tags), relatedFaqs (rel-array: faqs), robots (enum: index (Index (default))|noindex (noindex (hide))), searchText (textarea, localized, ≤60000 chars, redacted), meta (group: title, description, focusKeyword, secondaryKeyword1-4, searchIntent, eeatInsight, image — localized).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional: specific document ID to retrieve. If not provided, returns all documents | |
| page | No | Page number for pagination (default: 1) | |
| sort | No | Field to sort by (e.g., "createdAt", "-updatedAt" for descending) | |
| depth | No | How many levels deep to populate relationships (default: 0) | |
| draft | No | Optional: Whether the document should be queried from the versions table/collection or not. | |
| limit | No | Maximum number of documents to return (default: 10, max: 100) | |
| where | No | Optional JSON string for where clause filtering (e.g., '{"title": {"contains": "test"}}') | |
| locale | No | Optional: locale code to retrieve data in (e.g., "en", "es"). Use "all" to retrieve all locales for localized fields | |
| select | No | Optional: define exactly which fields you'd like to return in the response (JSON), e.g., '{"title": true}' | |
| fallbackLocale | No | Optional: fallback locale code to use when requested locale is not available |