# Ink authentication

Ink rewrites supplied text with meaning preserved. The shared Ink model is available when configured; it is not a trained personal voice.

## Start a signup

With the person's permission, POST JSON to [agent signup](https://ink.ego.ist/api/agent/signup) without cookies or credentials:

```json
{"email":"person@their-domain.com","plan":"ink","interval":"monthly","agent":{"name":"Your assistant","url":"https://your-assistant.com","version":"1.0"}}
```

Only email is required. Plan is ink or ink_pro (default ink); interval is monthly or annual (default monthly). Agent name is required if agent is supplied; its HTTPS URL and version are optional. Email is trimmed and lowercased. Validation uses syntax and a small local list of temporary email domains, with no network lookups. Never infer account existence from the response.

201 returns claim_code (eight unambiguous characters), claim_url, expires_at and next_steps. Show the person the link and code. Claims expire after 24 hours and allow 5 failed attempts. No email is sent. The person signs in or signs up through ego.ist on the [claim page](https://ink.ego.ist/claim), using the supplied email, accepts Ink terms and continues to Stripe Checkout. Card entry always needs the person. The code grants no account access, assistant authorization or Passport permission. Existing and new emails receive the same response shape.

This is a signup handoff described by auth.md. WorkOS identity_assertion, service_auth and anonymous registration types, assertion exchange and claim polling are not supported. No tokens are issued by signup.

## Connect an assistant

Use [Streamable HTTP MCP](https://ink.ego.ist/mcp) with Ink OAuth. Discover the [protected resource metadata](https://ink.ego.ist/.well-known/oauth-protected-resource) and [authorization server metadata](https://ink.ego.ist/.well-known/oauth-authorization-server). Public clients use authorization_code with S256 PKCE, the MCP resource URL, DCR or a client ID metadata document, and rotating refresh tokens. The person must explicitly consent. The only scope is ink.rewrite: use Ink account status, available models, supplied-text rewrites and owned rewrite jobs/results. It grants no Passport memory access. Revoke through the discovered revocation endpoint or [Connections](https://ink.ego.ist/app/connections).

## Plans and limits

Ink: USD 19/month or USD 190/year, 50,000 input words/month. Ink Pro: USD 39/month or USD 390/year, 200,000 input words/month. No free tier. Eligible accounts receive one 7-day trial through Stripe, card upfront, capped at 10,000 input words. It converts automatically to the chosen paid plan unless canceled. Returning customers start paid subscriptions. A launch gate may restrict checkout and rewriting even when signup succeeds.

Signup: 20/IP/hour and 3/email/hour. Claim confirmation: 60/IP/hour and 20/signed-in user/hour. OAuth registration: 30/IP/hour. MCP: 120/minute per connected user and client. Rewriting: 10/minute and 200/day per user. 429 means wait for Retry-After where supplied. 400 means correct the input; 401 means sign in; 403 means terms or launch access are required; 409 means billing/account conflict; 503 means setup is unavailable. Do not retry signup in a loop.

## Policies and support

- [Ink and pricing](https://ink.ego.ist/)
- [Terms, draft for review](https://ink.ego.ist/terms)
- [Privacy, draft for review](https://ink.ego.ist/privacy)
- [For agents](https://ink.ego.ist/agents)
- [Support](mailto:support@ego.ist)
