curl -X POST https://api.memoclaw.com/v1/migrate \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"filename": "2026-01-30.md",
"content": "## Project Setup\nDecided to use PostgreSQL with pgvector.\n\n## Config\nUser prefers dark mode."
}
]
}'
{
"files_processed": 1,
"memories_created": 2,
"memories_deduplicated": 0
}
API Reference
Migrate
Import markdown files (e.g., OpenClaw memory files) as MemoClaw memories.
POST
/
v1
/
migrate
curl -X POST https://api.memoclaw.com/v1/migrate \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"filename": "2026-01-30.md",
"content": "## Project Setup\nDecided to use PostgreSQL with pgvector.\n\n## Config\nUser prefers dark mode."
}
]
}'
{
"files_processed": 1,
"memories_created": 2,
"memories_deduplicated": 0
}
Parses markdown files, splits by
## headers, auto-detects importance and memory type, and stores each section as a separate memory. Idempotent — duplicate content is deduplicated via content hashing.
Request Body
array
required
Response
integer
Number of files successfully processed.
integer
Number of new memories stored.
integer
Number of memories skipped due to duplicate content.
array
Present only if some files failed. Each entry has
filename and error.curl -X POST https://api.memoclaw.com/v1/migrate \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"filename": "2026-01-30.md",
"content": "## Project Setup\nDecided to use PostgreSQL with pgvector.\n\n## Config\nUser prefers dark mode."
}
]
}'
{
"files_processed": 1,
"memories_created": 2,
"memories_deduplicated": 0
}
How parsing works
- Each file is split on
##headers - Each section becomes one memory with:
- content: header + body text (max 8,000 chars)
- importance: 0.6–0.9 based on keyword heuristics (decisions=0.9, preferences=0.8, etc.)
- memory_type: auto-detected (
decision,preference,correction,project,observation,general) - tags: header words +
date:YYYY-MM-DDfrom filename +migrated+openclaw
- Content is SHA-256 hashed for intra-batch and cross-request deduplication
- Files without
##headers are stored as a single memory
Pricing
| Endpoint | Cost |
|---|---|
POST /v1/migrate | $0.01 per request |