Skip to main content
The EverOS Cloud v1 API retires soon. We will announce the exact date by email and on this page. From that date, calls to /api/v1/* stop working. Any code that talks to EverOS needs to move to the v2 Memory API before then, whether it is running today or not.
Your API key does not change. The same key already works against both versions, so there is no credential to rotate and no configuration to swap.

What you get on v2

v2 is a rewrite of the memory layer, not a version bump. Alongside everything v1 did:

Knowledge bases

Ingest documents and search them alongside conversational memory, with categories, topics and tags.

Profile editing

Add, update or delete individual profile items directly, instead of waiting for extraction to correct itself.

Memory tags

Attach your own labels to memories.

Sharper agent memory

Agent memory splits into reusable skills and distilled cases, retrievable separately.

Finer retrieval control

Score thresholds, optional LLM reranking, and per-query profile inclusion.

Multi-app scoping

Partition memory by app and project under a single key.

Do I need to do anything?

1

Do you call /api/v1/* ?

Directly over HTTP, or through any client library. If yes, you need to migrate.
2

Do you depend on everos-cloud 0.4.x or earlier?

Check your requirements.txt or pyproject.toml for everos-cloud<1, everos-cloud>=0.4, or the older evermemos package. If yes, you need to migrate.
3

Neither?

You are already on v2. Nothing to do.

What happens to your data

We migrate it as part of the retirement. You do not need to export, re-ingest or backfill anything.
If you are cutting over well before the retirement date and you want your existing memories readable in v2 from the moment you switch, contact us. We will schedule your data migration around your cutover rather than around the retirement date.

Migrating your code

Option 1: by hand

Everything that changes is documented below, in the order you will meet it. Python SDK users should also read Upgrade Python SDK to 1.x: the 1.x SDK speaks only the v2 API, so upgrading it is the migration.

Option 2: hand it to us

Reply to your migration email, or contact us, and we will make the changes for your integration.
A migration tool is on its way. It will read your codebase, report exactly what would change, and apply most of it for you, covering both the Python SDK and raw HTTP calls in any language. It runs inside an AI coding assistant. We will link it here and announce it by email as soon as it is released.

What changes

Endpoints

Note the singular memory in v2. A search and replace that only swaps v1 for v2 will not work.

Timestamps must be in milliseconds

This is the most common migration break. It fails at runtime, on every write.
v2 rejects a seconds-scale timestamp rather than silently rescaling it, because a batch mixing both scales would mis-order and mis-split sessions.
Check your test fixtures and seed data too. A 10-digit literal is seconds, a 13-digit literal is milliseconds.

The owner moves onto each message

session_id is now required, between 1 and 128 characters. It is the unit that extraction works on.

Reads take the owner as a top-level field

Exactly one of user_id or agent_id is required on both get and search. Owner and type must agree: a user_id owner may ask for episode or profile, an agent_id owner may ask for agent_case or agent_skill.

Memory type values

New scoping fields

Every memory call accepts app_id and project_id, both defaulting to "default". You can ignore them, but reads must use the same pair as the write. A mismatched pair returns empty results rather than an error. This is a partition, not a security boundary. The security boundary is the tenant resolved from your API key.

Responses

request_id moved to the top level of the envelope, and the human-readable message field is gone.
In search responses, raw_messages becomes unprocessed_messages, and the single agent_memory object becomes two arrays, agent_cases and agent_skills. delete returned 204 No Content on v1. On v2 it returns 200 with a body reporting what matched.

Errors

Branch on status_code rather than matching on message. Code that matched the literal string "HTTP_ERROR" will never match again.

Capabilities that changed shape

v1 had a group as an addressable object: /api/v1/memories/group, a /groups registry, and group_id as a read filter.v2 scopes memory by sender. Multi-party conversations still work and still produce episodes attributed to every participant, but you write all participants into one session_id and read per participant rather than by group.If your integration uses group memory, contact us before you start. We will go through your usage and agree a mapping with you.
/api/v1/senders has no v2 equivalent. If you used it only to attach display names, pass sender_name on each message instead. Note that this changes “register once” into “send every time”, so the name has to be available at write time.
/api/v1/settings, covering timezone and llm_custom_setting, has no v2 equivalent. If you configured either, contact us before migrating.
v1 accepted {"memory_id": "..."} to delete one memory. v2 deletes by scope only: user_id, agent_id or session_id.Note the scope semantics: deleting by user_id alone removes that user’s episodes and their profile. Adding session_id removes what that session produced and leaves the profile in place.
everos-cloud 1.x ships no async client. AsyncEverOS was removed. You can run the synchronous client in a thread, or call /api/v2/memory/* with your own async HTTP client.

FAQ

No. The same key authenticates both versions, so you can migrate service by service without touching credentials.
Yes. v1 and v2 both accept your key until the retirement date, so you can move incrementally. Keep in mind that the two versions hold separate stores until your data is migrated, so a service reading on v2 will not see what another service wrote on v1. If that matters during your transition, contact us about migrating your data sooner.
Requests to /api/v1/* stop being served. Your existing memories are not affected. We migrate them into v2 as part of the retirement.
Yes. Tell us when you plan to cut over and we will schedule your migration to line up with it, so your history is there from the moment you switch.
One is coming. Until it is released, follow the manual guide above, or contact us and we will make the changes for you.
Tell us. We would much rather adjust the plan with you in advance than have you discover a problem on the last day.

Get help

You do not have to do this alone. Reply to your migration email with any questions, and we will walk through it with you. If you would rather hand it over, we will make the changes for your integration.