Pricing

Memory that scales
with your agents.

Free Hobby tier, 250 writes a month. Developer at €19/mo when you ship to production, Team at €79/mo to scale up, Scale at €249/mo for high volume, each plus VAT. Graph + temporal memory and storage in the EU on every tier.

Hobby

Free forever for solo builders. EU-hosted.

€0

/forever

  • 250 writes / month (one per 6,000 characters)
  • 25,000 reads / month
  • 2 agents (namespaces)
  • Graph + temporal memory
  • MCP cloud + API key
  • EU data residency
  • GitHub issues support
Recommended

Developer

For builders shipping production agents.

€19

/month + VAT

  • Everything in Hobby
  • 2,000 writes / month
  • 250,000 reads / month
  • 10 agents (namespaces)
  • Email support

Team

Developer, scaled up. Same product, bigger numbers.

€79

/month + VAT

  • Everything in Developer
  • 8,000 writes / month
  • 1,000,000 reads / month
  • 100 agents (namespaces)
  • Email support

Scale

High-volume production. Finite limits, never a surprise throttle.

€249

/month + VAT

  • Everything in Team
  • 25,000 writes / month
  • 10,000,000 reads / month
  • 500 agents (namespaces)
  • Email support

Self-hosted

Your machine, your Postgres, your model account.

Let's talk

price on request

  • You talk to the founder directly
  • Everything in Scale, with no meter
  • Your servers, cloud or on-prem: nothing reaches us
  • Setup: your fact schema, measured on your data
  • Yearly support: updates and upgrade help
  • A data processing agreement, and no sub-processor but your model
+1,000 writes for €10 + VAT

A busy month on a paid plan? Add 1,000 writes to the current month with one payment, from the Usage page of the dashboard. Once a month, no subscription change, no overage bill. If every month runs over, the next plan is the way up.

Prices exclude VAT. Polar adds your country's VAT at checkout.

Plan comparison

What's in each tier

Hobby Developer Team Scale
Capacity
Writes / month (one per 6,000 characters of a memory) 250 2K 8K 25K
Top-up for a busy month (once a month) , +1K writes +1K writes +1K writes
Queries / month 25K 250K 1M 10M
Agents (namespaces) 2 10 100 500
Rate limit: requests per minute / hour / day 60 / 1K / 10K 300 / 20K / 200K 1K / 100K / 1M 3K / 300K / 3M
End users (user_id) Unlimited Unlimited Unlimited Unlimited
Memory features (everywhere)
Graph memory ✓ ✓ ✓ ✓
Temporal reasoning ✓ ✓ ✓ ✓
Vector search (768D) + typed-fact lookup ✓ ✓ ✓ ✓
REST API + SDK + API key ✓ ✓ ✓ ✓
Memory stored in the EU ✓ EU ✓ EU ✓ EU ✓ EU
Support
GitHub issues ✓ ✓ ✓ ✓
Email support , ✓ ✓ ✓

FAQ

Pricing questions

What counts as a write?

One write per 6,000 characters of text you store: an add() call (POST /v1/memories), one item of a batch import, or an edit of a memory (PATCH), because it runs extraction again. A memory up to 6,000 characters is one write, however many typed facts Korely extracts from it: a whole 20-message conversation usually is. A longer one counts one write per 6,000 characters of its text, rounded up; the longest the API takes, 16,000 characters, is 3. The engine may make more extraction calls than that, because its reading windows overlap; you pay only the writes. A direct fact write (POST /v1/facts) or a fact correction is one write. Deletes do not count. The dashboard shows the count in real time.

What counts as a query?

One read call that returns stored data: GET /v1/memories (a list, a single memory or its history), POST /v1/memories/search, GET /v1/context, GET /v1/facts, GET /v1/profile, GET /v1/users, GET /v1/agents, GET /v1/events, or the equivalent SDK methods (korely.search(), korely.get_context(), korely.get_facts()). GET /v1/audit and the status of a batch import do not count. Writes (POST /v1/memories, POST /v1/facts, each item of POST /v1/batch, and edits with PATCH) count against the writes quota, not queries; deletes count against neither. Reads are retrieval, not generation: no generative model runs on the read path, which is why read quotas are an order of magnitude more generous than write quotas. The monthly counter resets the 1st of every month at UTC midnight.

Do my end users count against the agents limit?

No. An agent is a namespace for one of YOUR agent applications: your support chatbot is one agent, your sales copilot is another. The end users those agents serve are unlimited on every tier. Each memory and query is scoped to an end user via user_id, so a single support-bot agent can remember thousands of distinct customers. A user_id is just a label. An app with 10 users and one with 100,000 making the same API calls pay the same. What counts against quotas is total volume: writes and queries made.

What happens if I exceed my limits?

You get a 10% grace above the plan figure. Past that, writes answer 429 quota_exceeded until the month resets, you top up or you upgrade, and nothing is written in the meantime; reads past the queries quota answer the same 429 until the month resets or you upgrade. A quota.warning webhook fires once at 80% of the monthly writes quota, so you can decide whether to top up, upgrade or trim before you hit the wall. The per-minute, per-hour and per-day rate limits are a separate 429 (rate_limit_exceeded, with Retry-After). We never auto-upgrade and we never bill overage.

Can I add writes without changing plan?

Yes, on Developer, Team and Scale. From the Usage page of the dashboard you add 1,000 writes to the current month with one payment of 10 euro (or 10 dollars, or 10 pounds), plus VAT, once a month. The writes are for that month and end with it. It is there for the busy month; if every month runs over, move to the next plan.

Can I self-host?

Yes, and it is a product rather than an exception. You get the same engine on your own machine: Docker Compose, your Postgres, your model provider account, and a dashboard served by the install itself. The four public tiers stay hosted; self-hosting is the fifth column above, and it starts with a call.

Where is my data stored?

On the public tiers, your data is stored in our EU cloud (Helsinki, Finland). The model step on a write runs in the region you pick for each project: Europe keeps it in the EU (Scaleway), Global uses Google Gemini; both providers are sub-processors under a data processing agreement. You can erase everything about one user with one call. Self-hosted, it is your database on your machine and nothing reaches us at all. Extraction still calls a model, and you pick which and whose: Google, Mistral, or anything speaking the same API on your own network.

Need on-prem, SSO, an audit log, or a data processing agreement?

The audit log is on every plan, Hobby included: GET /v1/audit (or audit() in the SDK) says who wrote each memory and what an agent read when it decided, with ids and counts, never content. On-prem comes with the Self-hosted plan. On the Cloud, a data processing agreement covers every account that stores personal data: ask for it at [email protected]. SSO is available on Self-hosted: your own gateway authenticates your people and passes the result to the dashboard in a trusted header, so your identity provider decides. The Cloud has no customer SSO: people sign in to the dashboard with Google, Microsoft, GitHub, or email and password. What we do not offer is a standing SLA, because at our size that would be a promise about my nights rather than about the software; if you need one, we agree it in the call.

Start free.
Pay when you ship.

Your agents' memory lives in our EU cloud. Connect over REST at https://api.korely.ai/v1, or use the korely-memory Python or Node SDK. Sign in and your first key is minted on the spot.

Get your API key