REM Labs REST API: Complete Reference Guide

The REM Labs REST API works from any language, framework, or platform that can make HTTP requests. This guide covers every endpoint with curl examples, request parameters, response schemas, and error handling. If you can call a URL, you can add persistent AI memory.

Authentication

All requests require a Bearer token in the Authorization header:

Authorization: Bearer your-api-key

Get your free API key at remlabs.ai/console. The base URL for all endpoints is https://api.remlabs.ai/v1.

POST /v1/remember

Store a new memory.

curl -X POST https://api.remlabs.ai/v1/remember \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{ "content": "We use PostgreSQL 15 for the main database", "tags": ["database", "infrastructure"], "namespace": "my-project", "metadata": {"source": "architecture-review"} }'

Parameters

Response (201)

{ "id": "mem_abc123xyz", "content": "We use PostgreSQL 15 for the main database", "tags": ["database", "infrastructure"], "namespace": "my-project", "created_at": "2026-04-13T10:30:00.000Z" }

POST /v1/recall

Search memories using multi-signal fusion (semantic + full-text + entity graph).

curl -X POST https://api.remlabs.ai/v1/recall \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{ "query": "what database do we use", "namespace": "my-project", "limit": 5, "threshold": 0.5 }'

Parameters

Response (200)

{ "memories": [ { "id": "mem_abc123xyz", "content": "We use PostgreSQL 15 for the main database", "tags": ["database", "infrastructure"], "namespace": "my-project", "score": 0.94, "created_at": "2026-04-13T10:30:00.000Z" } ], "total": 1, "query_time_ms": 23 }

DELETE /v1/forget

Delete one or more memories.

# Delete by ID curl -X DELETE https://api.remlabs.ai/v1/forget \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{"memory_id": "mem_abc123xyz"}' # Delete by namespace curl -X DELETE https://api.remlabs.ai/v1/forget \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{"namespace": "old-project"}'

GET /v1/memories

List memories with pagination.

curl "https://api.remlabs.ai/v1/memories?namespace=my-project&limit=20&offset=0" \ -H "Authorization: Bearer your-api-key"

Response (200)

{ "memories": [ ... ], "total": 142, "limit": 20, "offset": 0 }

Error Handling

All errors return a consistent JSON format:

{ "error": "invalid_api_key", "message": "The API key provided is invalid or expired.", "status": 401 } // Common error codes: // 400 - Bad request (missing required field) // 401 - Invalid or missing API key // 429 - Rate limit exceeded (retry after header) // 500 - Server error (retry with backoff)

Rate Limits

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Language-agnostic: This REST API works from any language -- Python, JavaScript, Go, Rust, Java, Ruby, PHP, or even shell scripts. If your tool can make HTTP requests, it can use REM Labs.

Start building with the API

Free tier. No SDK required. Works from any language.

Get started free →