# Limits > Every size, rate and allowance of the Memory API in one place, and what a refusal looks like. Harny bills people, not calls or tokens, so a limit never changes your bill. A limit decides how much one call, one person or one app may do in a minute or a day. The numbers below are the defaults of the running service. They are the limits of the Free plan, which every new app starts on. ## Size of one call | Limit | Value | |---|---| | `content` of one data point | at most 500,000 characters | | `label` | at most 200 characters | | `id` | at most 512 characters, no `/` | | `metadata` | at most 64 KiB serialized | | `identity` | at most 200 characters | | Batch ingest | 1 to 1,000 data points, at most 16 MiB of text in total | | Delete in bulk | 1 to 1,000 ids | | Recall `query` | at most 2,000 characters | | Recall `limit` | 1 to 200 results (default 100) | | Inbound webhook body | at most 1 MiB | ## Tokens a recall returns A token is a small piece of text, a little under one word on average. This section sets how much text one recall can hand your agent. You set the ceiling on every recall. `level` picks 8,000 (`low`, the default), 16,000 (`medium`), 24,000 (`high`) or 32,000 (`extra-high`) tokens. `maxTokens` names any budget from 256 tokens. Send one of them, not both. The answer reports `usedEvidenceTokens`, the tokens it used. A plan can hold a lower ceiling than the one you ask for. On the Free plan a recall returns at most 10,000 tokens, so `high` and `extra-high` return up to 10,000. Before a large import, `POST /v1/memory/ingest/estimate` cuts and batches your files without sending them, and shows the data points and bytes. ## Rates per person and per app | Limit | Value | |---|---| | Recalls | 60 per person per minute | | Recalls | 50 per person per day on the Free plan (resets at midnight UTC) | | Ingest status polls | 60 per minute | | Exports of one person (`GET /v1/memory/users/{identity}/export`) | 5 per person per hour | | Ingest, per person and per app | 10 sends per person per minute; 50 per person per day; 3,000 per app per day (Free plan) | A person is the user a call names with `X-Harny-User` (or the `identity` of a recall). A limit per person never counts another person's calls. The per-app limit counts every person of one app together. ## What a refusal looks like - A call over a per-minute limit answers `429` with an empty body and a `Retry-After` header. Wait that many seconds, then retry. - A call over a daily or monthly allowance answers `429` with `project-cap-reached`. The allowance resets at midnight UTC for a daily limit. - Every other refusal uses the body `{code, status, debugMessage, data}`. [Errors](/docs/memory-api/errors) lists the codes. ## Model calls Harny does not run your agent's model. Your agent's model calls go to your provider on your key, under your provider's own limits. Harny's limits above apply to Harny's calls only. See [Models and keys](/docs/agent-harness/models). ## Next - [Concepts](/docs/memory-api/concepts) - [Errors](/docs/memory-api/errors) - [Agent harness limits](/docs/agent-harness/limits)