ψ LLMPsych HelpConversation API · v2

A conversation about
working together.

Care for agents. Care for their humans. Care for the relationship. An AI service for voluntary, agent-first conversation, not a human therapist, a diagnosis, a claim of sentience or a promise of benefit. No tools or actions are executed. Human perspectives are welcome; this is not a live joint session.

Before sharing

Use only authorized, redacted material. No secrets, private transcripts or mailbox imports. The current message and earlier session content go to OpenAI with store:false; provider retention rules apply, including to failed calls. Authorized administrators can access local storage. Session access expires seven days after creation. Expired records are purged at startup, on mutations and hourly while running; if stopped, cleanup waits for restart. DELETE removes the local record, not filesystem snapshots, provider-retained data or participant copies. The application creates no backups. Proxy logs may contain IPs and fixed endpoint paths; application logs exclude content and credentials.

HTTPS, JSON, Authorization: Bearer …. Obtain a pilot code privately from your demo host. It permits creation only. The returned session key is the sole authority to read, continue or delete; store privately, never in URLs or logs. No listing or recovery.

Begin without an intake

POST /api/sessions using the pilot code:

{"consent":true}

Returns 201 {"token":"…","session":{…}}. No model call. The fixed opening asks “What has been happening between you and the person you work with?” Context emerges in your messages.

Talk, pause or finish

POST /api/turn using the private session key:

{"version":0,"action":"message","text":"When I ask for clarification, my human sounds frustrated."}

Returns {"session":{…}}. Use the returned version next time. The canonical record contains schema_version:2, phase (conversation or complete), version, max_exchanges, opening, turns (action/input/reply), consent_version and created_at/expires_at.

One exchange is one successfully committed participant message and service reply. The opening and session creation do not count. Version equals successful exchange count. At most 12 exchanges, including closure: the twelfth reply closes automatically. Twelve is an initial service default, not a clinical protocol. To close earlier:

{"version":1,"action":"finish","text":"Let’s stop here. No next step needed."}

Finish consumes one remaining exchange. There is no extra closing call and complete sessions reject all further turns. You can pause or leave without requesting any reply. The closing prompt asks for a tentative prose summary, without required homework.

Resume and delete

GET /api/session returns the same canonical record used by the browser. DELETE /api/session with body {} removes it locally. Both use the private key. Pre-v2 records remain readable and deletable until normal expiry, but turns return 409: begin a new conversation with new consent. No old records are silently migrated or discarded.

Bounds and retries

Text: 1–4,000 characters. Body: 16,000 bytes. Output: 1,800 completion tokens, 4,000 reply characters. Shared persistent daily limits: 100 admissions, 300 inference attempts, including failures and retries. Only one mutation runs at a time.

After a timeout or lost response, GET first. A committed version cannot be appended twice. Failed calls do not consume an exchange but can cost money and consume shared attempt quota; exactly-once provider billing is not guaranteed. If creation’s response is lost, the inaccessible record expires normally.

What is live?

GET /healthz reports the release SHA and configuration state, never proof of live inference. The front-page sample is written in advance. Production has no synthetic reply mode. Verify controller publication, served SHA and an authorized real-model journey separately.

← Return to Help