Open API v1 · Beta

One account and one wallet, across every companion product you ship.

Users sign in once and pay once. Your app ships features — not billing, identity or model plumbing. Built for companion, virtual-being and interactive-story products.

One user, two apps, one bill. This is the whole model.2026-09
#100001
One user
Wallet8,253 pts
−12 pts−8 pts
Y
Your app
signed in with HarperHarbor
chat.play
A
Another app
signed in with HarperHarbor
chat.play
One bill
09:41Your app · chat.play-12
09:38Another app · chat.play-8
09:12Your app · chat.play-21
Balance8,253 pts

We built this to run our own products first. Now it is open.

The same account, wallet and model lanes that power our own chat stage and community tavern are what you integrate. No separate "partner" tier.

What changes for your product

01

Users never register twice

A person who already has a HarperHarbor account signs in to your app with one tap. Their balance comes with them.

02

You never touch money

Top-ups, refunds, disputes and receipts are the platform's problem. Your app reads a balance and makes calls.

03

Switching models is not a deploy

Every model sits behind a named lane with automatic failover. When an upstream degrades, traffic moves and the user is told.

Under the hood

Six things every companion product needs and none should build twice.

Identity and wallet

One account, one prepaid balance, shared across apps. Apps are groupings of users, never owners of them.

Persona runtime

Card play, greetings, author display rules and memory, exposed as services rather than a single product's chat screen.

Model lanes

Several upstreams behind each model, published as stable codenames. Routing, health probes and failover are ours to run.

Boundaries

Fixed roles, app-scoped queries enforced server-side, upstream names never exposed, every admin action audited.

Metering

Every call is an event with user, app, service and lane. Daily rollups reconcile against the wallet, and the delta must be zero.

Open API and MCP

A frozen v1 contract with OAuth 2.1 for people, and read-only MCP tools for AI clients — same service layer, same rules.

The console is already running

Attention first, then numbers: lane health, quota pressure and reconciliation on one screen. What you see here is the same console your team will use.

Platform overview · mock data in the public build
Platform overview · mock data in the public build

For developers

Register once, exchange a code, make a call. The contract is frozen at v1 and any language works.

AI clients can also read usage and lane status over MCP with the same token.

Open the quickstart
# 1. exchange the authorization code (PKCE)
curl -X POST https://api.harperharbor.com/oauth/token \
  -d grant_type=authorization_code -d code=$CODE \
  -d client_id=$CLIENT_ID -d redirect_uri=$REDIRECT_URI \
  -d code_verifier=$VERIFIER -d resource=https://api.harperharbor.com/open/v1

# 2. who is signed in
curl https://api.harperharbor.com/open/v1/me \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "language: en"

Pay per use. No monthly fee.

Users prepay points. Apps integrate for free. Rates are published per model and lane before anyone spends a point.

Users prepay points

Points do not expire. Every call debits the user's single wallet, whichever app made it.

Apps pay nothing

No seat fee, no revenue share, no minimum. The only limit is a daily quota that protects the platform.

Rates are public

Each model-and-lane price is shown in the console and inside the product at the moment of use.

See how pricing works →

Clear boundaries

  1. 01

    An app sees only its own users

    Never balances, never activity from other apps. The scope is enforced in the query, not in the UI.

  2. 02

    Every admin action is audited

    Who, when, what and through which channel — console, API, SSO or cron. Retained 180 days.

  3. 03

    Users can leave

    A user can revoke any app in one click; its tokens stop working immediately.

Questions

Is this a character-chat API?

Card play is the first service, but the product is the layer underneath: shared identity, one wallet, model lanes, metering and boundaries. Any companion-style experience can sit on it.

What if I want to bill my own users?

Then this is not for you yet. Apps on HarperHarbor do not charge or settle; that is the trade for never touching money. Settlement is on the roadmap, not a promise.

Which models do you run?

We publish lanes, not vendor names. A lane is a stable codename with live health and a price; behind it we may run several upstreams and move traffic between them.

Ship the product. Skip the plumbing.

Apps are onboarded by the platform team in phase 1. Tell us what you are building.

Request access