A key in one step, no card
Teach a model something, ask it, delete it again. The free tier is meant to be enough to wire into something real, not a tour.
The hosted API is not live yet. The free tier is built and tested, and this page is wired to it — what is missing is a deployed endpoint for it to talk to, which is a hosting decision rather than a code one.
In the meantime a key is issued by hand against a self-hosted deployment, usually the same afternoon. Ask for one and say what you are building.
Or run it yourself now — the server is one container:
docker run -p 8080:8080 hebb-serve --dev
Checking whether the hosted API is live…
What free includes
| Limit | Free | Why this number |
|---|---|---|
| Questions | 10,000 a month | Naming the rule makes no model call at all, so these are nearly free to serve. |
| Teaching a rule | 500 a month | A write is a fifth of a second of gradient descent, and it holds the model while it runs. |
| Memories | 50 | Kept well inside the range where finding a memory from plain English still works. See below. |
| Rate | 5 a second | The limit that actually protects the service. A month's worth spent in a minute is an outage for everybody else. |
Past the ceiling you get 402 with the limit you hit and when it resets
— not a throttle, because a throttle looks like an outage. Deleting is never refused
for quota, at any tier, for any reason.
Sixty seconds
export KEY=hebb_... # from above
# teach it something
curl -X POST $BASE/v1/rules -H "Authorization: Bearer $KEY" \
-H 'content-type: application/json' \
-d '{"slot": "refund window", "value": "60 days"}'
# ask, naming the rule
curl -X POST $BASE/v1/ask -H "Authorization: Bearer $KEY" \
-H 'content-type: application/json' \
-d '{"question": "how long to refund?", "slot": "refund window"}'
# {"value": "60 days", "confidence": 1.0, ...}
# forget it, and get a receipt proving it
curl -X DELETE "$BASE/v1/rules/refund%%20window" -H "Authorization: Bearer $KEY"
# what you have spent
curl $BASE/v1/usage -H "Authorization: Bearer $KEY"
Pass slot when you know it
If your application already knows which rule it wants, name it. That path returns the stored value exactly and makes no model call. Leaving it out asks the memory to work out which rule you meant from the question, which is approximate today — it is the part we are still improving, and we would rather say so than have you find out.
The limits are not the pitch
The free tier runs on our hardware, so it is metered. The product most people buy is the self-hosted licence: the same container inside your own perimeter, your data never leaving it, and no per-request ceiling because it is your GPU. Ask about that once the free key has convinced you.