77trust / 100

Memories

by Mem0 Cloud in Developer tools

x402 APIPassing, checked 2 h ago

Read your stored memories, like mem0's get memory and get all memories. With memory_id: returns that one memory (404 if it is not yours). Without it: returns a page {count, next, previous, results} of the memories matching user_id, agent_id, app_id or run_id (at least one; "*" matches any value), newest first. Requires your memory_key (a secret string you generate): a different key sees nothing.

GET
https://mem0-cloud.saastemly.com/v1/memories
Price
$0.002
per call in USDC
Uptime
100%
last 30 days
Response time
380 ms
1.0 s slowest 5%
Last check
Passed
2 h ago, next any minute now

Run a free test callHow to call it

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to call it

GET https://mem0-cloud.saastemly.com/v1/memories

Each call costs $0.002 in USDC on Base, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

GET https://mem0-cloud.saastemly.com/v1/memories?memory_key=mk_7f3a9c1e5b2d48a6b0c4e9d1&page=1&page_size=50&user_id=alice

Parameters

ParameterTypeRequiredDescription
agent_idstringNoEntity: the agent the memories belong to (1-128 characters)
app_idstringNoEntity: the app (1-128 characters)
memory_idstringNoUUID of one memory to fetch; leave out to list memories instead
memory_keystringYesYour secret: a random string of 16-256 characters that you generate once and keep (also accepted as the X-Memory-Key header). Memories are stored and searched only under its hash, so nobody who lacks it can read them, whatever user_id they send. Lose it and the memories are unreachable.
pageintegerNoPage number, from 1 (default 1)
page_sizeintegerNoMemories per page, 1-100 (default 50)
run_idstringNoEntity: the session or run (1-128 characters)
show_expiredbooleanNoInclude memories whose expiration_date has passed (default false)
user_idstringNoEntity: the user the memories are about (1-128 characters)

Example response

The provider's example. We can't check it without paying.

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "agent_id": null,
      "app_id": null,
      "categories": [],
      "created_at": "2026-10-03T09:00:00.000Z",
      "expiration_date": null,
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "memory": "User moved to San Francisco from New York.",
      "metadata": {
        "source": "onboarding"
      },
      "run_id": null,
      "updated_at": null,
      "user_id": "alice"
    }
  ]
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.002.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://mem0-cloud.saastemly.com/v1/memories?memory_key=mk_7f3a9c1e5b2d48a6b0c4e9d1&page=1&page_size=50&user_id=alice'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://mem0-cloud.saastemly.com/v1/memories?memory_key=mk_7f3a9c1e5b2d48a6b0c4e9d1&page=1&page_size=50&user_id=alice' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.002 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.002" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.002 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fmem0-cloud.saastemly.com%2Fv1%2Fmemories
const res = await pay("https://mem0-cloud.saastemly.com/v1/memories?memory_key=mk_7f3a9c1e5b2d48a6b0c4e9d1&page=1&page_size=50&user_id=alice");
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.002 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.002"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.get("https://mem0-cloud.saastemly.com/v1/memories?memory_key=mk_7f3a9c1e5b2d48a6b0c4e9d1&page=1&page_size=50&user_id=alice")
    print(res.status_code, res.text)

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
2 h agoPassed402313 ms$0.002
7 h agoPassed402347 ms$0.002
11 h agoPassed402433 ms$0.002
16 h agoPassed402317 ms$0.002
21 h agoPassed402310 ms$0.002
Show 10 older checks
25 h agoPassed402293 ms$0.002
29 h agoPassed402381 ms$0.002
33 h agoPassed402509 ms$0.002
38 h agoPassed4021.3 s$0.002
42 h agoPassed402330 ms$0.002
46 h agoPassed402186 ms$0.002
2 days agoPassed402380 ms$0.002
2 days agoPassed402385 ms$0.002
2 days agoPassed4021.0 s$0.002
3 days agoPassed402381 ms$0.002