← Catalog

memory.add

coming soon

Give your agent a memory. Send text, a URL, a conversation or plain facts; learner-1 extracts what matters, links it to what it already knows and updates facts that changed. Scope it with a namespace ("lead:acme", "campaign:q4", a user id) so each subject keeps its own memory inside your workspace.

Coming soon. No real adapter serves this capability yet. The sandbox returns clearly labeled mock data against the final schema, so you can integrate now and switch on real routing when the first provider goes live.

Providers

ProviderStatus
Supermemory adapter next

Billing

Unit: per_add · unmatched results billed: no
Priced by size: $0.0075 per 1,000 tokens of text, $0.015 per 1,000 for PDFs, images and media, floor $0.002. A URL is quoted as about 3,000 tokens. Facts add $0.00015 each; instant processing adds $0.00015. Supermemory only meters new content, so re-adding the same custom_id costs nothing upstream. Every price is the provider's cost x 1.5. The quote is the floor: if the provider's actual cost overruns the estimate, the run bills at 1.5x the actual cost, capped at 1.5x the quote.

The exact quote is returned by /v1/inspect before every call and held with headroom (1.5x the quote) on execution. The quote is the price floor: if the provider's actual cost overruns it, the run bills at about 1.5x cost, never above the hold. The unused part of every hold is released.

Run it

curl https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{
    "capability": "memory.add",
    "input": {  },
    "routing": {"provider": "auto"}
  }'

Input schema

{
  "properties": {
    "content": {
      "description": "Text to remember, or a URL to fetch (page, PDF, image, video). One of content, messages or facts.",
      "type": "string"
    },
    "conversation_id": {
      "description": "With messages: your id for the thread, so later calls extend it instead of duplicating it",
      "type": "string"
    },
    "custom_id": {
      "description": "Your id for this content; re-adding the same custom_id updates it instead of billing again",
      "type": "string"
    },
    "document_date": {
      "description": "When the content is from (YYYY-MM-DD or ISO 8601), for backfills",
      "type": "string"
    },
    "facts": {
      "description": "Statements to store as-is, searchable at once: [\"Acme runs on HubSpot\", \"Maria owns the SDR budget\"]",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "instant": {
      "default": false,
      "description": "Process this content right away instead of batching it with related content",
      "type": "boolean"
    },
    "messages": {
      "description": "A conversation: [{\"role\": \"user\"|\"assistant\"|\"system\"|\"tool\", \"content\": \"...\"}]. Send the same conversation_id again to extend it.",
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "metadata": {
      "description": "Flat key-value tags (strings, numbers, booleans) attached to the memories",
      "type": "object"
    },
    "namespace": {
      "description": "Memory scope inside your workspace, e.g. \"lead:acme\" or \"campaign:q4\"; omit for the workspace-wide memory",
      "type": "string"
    },
    "static": {
      "default": false,
      "description": "With facts: mark them permanent traits (name, role, company)",
      "type": "boolean"
    }
  },
  "type": "object"
}

Normalized output fields

mode · document_id · status · memories · conversation_id · next_step