feed

Extract facts from text or a chat, then store them. REST only — there is no MCP feed tool.

POST/v1/feed

Send either content or messages. If both are present, content is used.

FieldTypeRequiredDescription
contentstringno

Raw text. Max 5,000 bytes.

messagesMessage[]no

Chat turns. Max 20. Each message has role (user, assistant, or system) and content.

sourcestringno

Label for the extracted facts. Max 255.

collectionstringno

Collection code. Omit for the connection default. "" forces the default bucket.

reasonbooleanno

Default false: one-shot extraction, then store. true: an agent recalls what is already in the graph, keeps durable facts, namespaces type:id, normalizes abbreviations, and skips duplicates. Nested remember/recall bill their own credits on top of the reason base.

Request — text

{
  "content": "Maya works at Acme and writes TypeScript.",
  "source": "onboarding-conversation"
}

Request — messages

{
  "messages": [
    { "role": "user", "content": "I work at Acme as a backend engineer" },
    { "role": "assistant", "content": "What stack?" },
    { "role": "user", "content": "Mostly Go and PostgreSQL" }
  ],
  "source": "onboarding_chat"
}

Request — reason

{
  "content": "Maya works at Acme and writes TypeScript.",
  "source": "onboarding-conversation",
  "reason": true
}

SDKs:

await memory.feedWithOptions({
  content: "Maya works at Acme and writes TypeScript.",
  source: "onboarding-conversation",
  reason: true,
});
memory.FeedWithOptions(ctx, gomind.FeedRequest{
  Content: "Maya works at Acme and writes TypeScript.",
  Source:  "onboarding-conversation",
  Reason:  true,
})
$memory->feed(
  'Maya works at Acme and writes TypeScript.',
  'onboarding-conversation',
  null,
  true
);

Response

{
  "status": "completed",
  "facts_extracted": 3,
  "facts_created": 3,
  "facts": []
}

If you already have triples, skip feed and call remember_many.