Save Endpoint

Save Endpoint

Save content to Context Link's memory. Saved content is indexed into vector embeddings and can be retrieved later via the Context endpoint or by namespace.

Quick reference

Property Value
Endpoint POST /api/v1/context/save
Authentication API key via Authorization header
Rate limit 5 requests per 10 seconds
Content-Type application/json
Response format JSON

Parameters

Parameter Type Location Required Description
namespace string Query string Yes A name for the saved content. Used for retrieval and versioning. Case-insensitive, spaces become dashes.

Request body

The body should be JSON. Accepted formats:

  • JSON array of strings (recommended) — each string becomes a chunk of 800-3200 characters
  • JSON string — a single block of content
  • JSON object — converted to markdown automatically

Status codes

Code Description
201 Content saved successfully
400 Namespace parameter is missing
401 API key is missing or subscription required
404 API key is invalid
422 Request body is empty
429 Rate limit exceeded

Examples

Basic usage

curl -X POST "https://context-link.ai/api/v1/context/save?namespace=meeting-notes" \
     -H "Authorization: your-api-key-here" \
     -H "Content-Type: application/json" \
     -d '["Meeting notes from Feb 15: discussed roadmap priorities and Q2 goals..."]'

Response (201 Created):

{
    "message": "Saved",
    "namespace": "meeting-notes"
}

Python example

import requests

api_key = "your-api-key-here"

# Save content under a namespace
response = requests.post(
    "https://context-link.ai/api/v1/context/save",
    params={"namespace": "project-notes"},
    headers={
        "Authorization": api_key,
        "Content-Type": "application/json"
    },
    json=["First chunk of content...", "Second chunk of content..."]
)

data = response.json()
print(data["message"])    # "Saved"
print(data["namespace"])  # "project-notes"

JavaScript example

const apiKey = 'your-api-key-here';

fetch('https://context-link.ai/api/v1/context/save?namespace=project-notes', {
    method: 'POST',
    headers: {
        'Authorization': apiKey,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(['First chunk of content...', 'Second chunk of content...'])
})
.then(response => response.json())
.then(data => {
    console.log(data.message);    // "Saved"
    console.log(data.namespace);  // "project-notes"
});

Namespaces and versioning

  • Namespaces are case-insensitive and normalized (spaces become dashes).
  • Saving to the same namespace creates a new version. The old content is kept, but retrieving by namespace always returns the latest version.
  • You can use namespaces to organize memories by topic, e.g. meeting-notes, project-roadmap, daily-standup.

Retrieving saved content

Saved content is automatically available through the Context endpoint. If you saved with a namespace, querying that exact namespace returns the content directly without a vector search.

# Retrieve by namespace
curl -X GET "https://context-link.ai/api/v1/context?query=meeting-notes" \
     -H "Authorization: your-api-key-here"

Content saved without a namespace is still searchable via semantic search — just query with related terms.

Error responses

// 400 Bad Request - Missing namespace
{
    "error": "A namespace is required"
}

// 422 Unprocessable Entity - Empty body
{
    "error": "No content provided"
}

// 401 Unauthorized - Missing API key
{
    "message": "API key required"
}

// 401 Unauthorized - Subscription required
{
    "message": "You need to be subscribed to access that page"
}

// 404 Not Found - Invalid API key
{
    "message": "Not found"
}