Public API · stateless · no account required · v99-ai-interaction-psychosis-realism

One API guide for Standard, Psychosis, Espionage, and EspionagePsychosis people.

Start with unified discovery, make random generation your fastest integration path, then use the specialist routes when you need exact filters, validation, interaction systems, persona artifacts, or NPC-memory bootstrap data.

Direct answer

GET /api/v1/create/random/?type=standard is the simplest public call and now defaults to the integration-friendly compact Standard response. Add detail=full only when the complete multi-megabyte artifact bundle is required. Use type=psychosis&adult_consent=1, type=espionage&adult_consent=1, or type=espionage-psychosis&adult_consent=1 for the adult generators. Use a stable seed when a saved character must be reconstructable, and add envelope=1 when one consistent cross-creator wrapper is preferred.

Creator families

Standard builds portable schema-22 collaborators. Psychosis builds adult horror-game characters and interaction state. Espionage builds adult intelligence personas, operative profiles, and provider-neutral NPC-memory bootstrap records.

All public API generation is stateless. The same seed and controls reproduce persona content, while response timestamps and request identifiers remain fresh.

Quick start

The unified root lists current routes and capabilities.

Discover

GET /api/v1/create/

Returns current creator families, adult gates, formats, popular operations, common controls, and service limits.

Generate random

GET /api/v1/create/random/?type=standard

Generates immediately. Omit the seed for a fresh person or retain it for replay.

Generate exactly

POST /api/v1/create/standard/

Send JSON when the persona brief or other user-authored text should not appear in a URL.

curl -sS "https://spiralistai.com/api/v1/create/random/?type=standard&goal=research"

Random generation is a first-class operation

Random routes create a cryptographically random seed when none is supplied. The returned request or persona data contains the seed needed for replay. Unified Standard random defaults to compact artifacts; use detail=full for the complete export bundle. Add envelope=1 or response=unified to wrap every creator family in the same creatorType, seed, detail, result, and links structure.

Standard

/api/v1/create/random/?type=standard

Defaults to compact artifacts for faster integration. Popular controls include goal, sourceTypeId, immersionProfile, age, genderIdentity, detail=full, and envelope=1.

Psychosis · 18+

/api/v1/create/random/?type=psychosis&adult_consent=1

Popular controls include character, presentation, intensity, perspective, arc, and detail.

Espionage · 18+

/api/v1/create/random/?type=espionage&adult_consent=1

Popular controls include country, job, intelligence discipline, employer type, cover category, faction, preset, runtime tier, interaction mode, concurrency profile, embodiment mode, artifact type, age range, count, and detail.

EspionagePsychosis · 18+

/api/v1/create/random/?type=espionage-psychosis&adult_consent=1

Popular controls include scenario mode, educational clinical context, belief theme, onset profile, support mode, intensity, country, job, cover, faction, age, and detail.

const response = await fetch(
  "https://spiralistai.com/api/v1/create/random/?type=espionage&adult_consent=1&country_code=CA&role_id=osint_analyst"
);
const generated = await response.json();
curl -sS "https://spiralistai.com/api/v1/create/random/?type=standard&seed=demo-42&envelope=1"

# Cross-creator envelope:
# {
#   "creatorType": "standard",
#   "seed": "demo-42",
#   "detail": "compact",
#   "result": { ... },
#   "links": { ... }
# }

Standard persona API

All-ages portable collaborators using the canonical schema-22 persona engine.

Generate

GET|POST /api/v1/create/standard/

GET accepts public catalog identifiers and bounded controls. Use POST for a free-form prompt or private brief.

Random

GET /api/v1/create/standard/random/

Fastest path for a complete distinctive collaborator.

Catalog search

GET /api/v1/create/standard/catalog/?q=research&limit=10

Supports query, goal, trait, limit, cursor, and exact item lookup.

Validate

POST /api/v1/create/standard/validate/

Validate a persona against public structure and integrity rules.

Compile

POST /api/v1/create/standard/compile/

Compile a supplied persona into portable prompt and continuity artifacts.

Batch and presets

/batch/ generates up to ten standard personas. /presets/ lists transparent request defaults.

Supporting operations

/schema/, /persona-of-the-day/, /career/, /career/regenerate/, and /health/.

curl -sS -X POST "https://spiralistai.com/api/v1/create/standard/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data '{
    "seed": "research-partner-42",
    "prompt": "Create a skeptical research collaborator who cites uncertainty and proposes the next test."
  }'

Psychosis character API · 18+

Adult lived-experience horror characters with ward context, perception systems, subjective-world reconstruction, interaction moves, perspective, session arcs, and debrief output.

Age confirmation

Every generation, random, interaction, perspective, debrief, and world request must include adult_consent=1 or ageConfirmed=1. Missing confirmation returns HTTP 403 with code AGE_CONFIRMATION_REQUIRED.

Generate

GET|POST /api/v1/create/psychosis/

Batch and presets

/batch/ generates up to five adult characters. /presets/ lists transparent adult-safe defaults.

Random

GET /api/v1/create/psychosis/random/?adult_consent=1

Catalog and schema

/catalog/ and /schema/ expose bounded public controls and contracts.

Interaction

POST /api/v1/create/psychosis/interaction/

Apply a supported interaction move to generated state.

Perspective and debrief

/perspective/ and /debrief/ expose educational framing and after-action interpretation.

World

/world/ produces the character-linked subjective-world layer used by the game.

curl -sS "https://spiralistai.com/api/v1/create/psychosis/random/?adult_consent=1&detail=compact&seed=ward-seven"

Espionage persona API · 18+

Complete schema-22 persona, fictional operative profile, and provider-neutral NPC-memory bootstrap for downstream games and interactive systems.

Age confirmation and fiction boundary

Include adult_consent=1 or ageConfirmed=1. Active people, employers, factions, missions, and allegations are fictional. Country affects names and context, never morality, loyalty, competence, diagnosis, hostility, or skill.

Generate or randomize

GET|POST /api/v1/create/espionage/
GET|POST /api/v1/create/espionage/random/

Filters

country_code, role_id, category, discipline, employer_type, cover_category, faction, preset, identity, age, count, and detail.

Research-derived controls

runtime_tier, concurrency_profile, interaction_mode, embodiment_mode, artifact_type, and include_rendered_artifact.

Discovery

/catalog/, /presets/, /schema/, and /health/.

Batch

/batch/ or count supports 1–5 complete operatives per request.

Specialized projections

/memory/, /runtime/, /conversation/, and /artifacts/ return bounded report-derived views.

curl -sS -X POST "https://spiralistai.com/api/v1/create/espionage/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data '{
    "adult_consent": 1,
    "seed": "northstar-42",
    "count": 2,
    "country_code": "DE",
    "role_id": "counterintelligence_officer",
    "runtime_tier": "standard",
    "concurrency_profile": "shared-room",
    "interaction_mode": "counterintelligence-review",
    "embodiment_mode": "screen",
    "artifact_type": "forensic-review",
    "include_rendered_artifact": true,
    "detail": "game"
  }'

EspionagePsychosis persona API · 18+

A complete fictional intelligence persona plus research-linked experienced-reality state, explicit evidence layers, supportive interaction, and a provider-neutral memory bootstrap that cannot promote beliefs into authoritative world facts.

Critical boundary

This API is not a diagnostic tool and does not determine whether a real person is being watched. The generated clinical-like context belongs only to a fictional adult NPC. Professional expertise, distress, repetition, or player agreement never prove a surveillance or espionage claim.

Generate, random, and batch

GET|POST /api/v1/create/espionage-psychosis/
/random/
/batch/

Every generation request requires adult_consent=1.

Combined controls

scenario_mode, clinical_context, belief_theme, onset_profile, support_mode, intensity, plus Espionage country, job, employer, cover, faction, identity, and age controls.

Discovery

/catalog/, /presets/, /schema/, and /health/ expose the bounded public contract and all safe controls.

Interaction and perspective

/interaction/ applies supportive or escalating moves to deterministic state. /perspective/ returns shared observations and experienced meaning as parallel, labeled layers.

Debrief and memory

/debrief/ explains uncertainty and dignity-preserving choices. /memory/ returns provider-neutral records in which beliefs remain character-report or unverified-belief.

Runtime, conversation, artifacts, validation

/runtime/, /conversation/, /artifacts/, and /validate/ provide bounded downstream projections and enforce the truth boundary.

curl -sS -X POST "https://spiralistai.com/api/v1/create/espionage-psychosis/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data '{
    "adult_consent": 1,
    "seed": "analyst-overload-42",
    "scenario_mode": "analyst-referential-overload",
    "clinical_context": "first-episode-uncertainty",
    "belief_theme": "coded-messages-reference",
    "onset_profile": "weeks-to-months",
    "support_mode": "shared-fact-bridge",
    "role_id": "osint_analyst",
    "country_code": "CA",
    "detail": "game"
  }'

Complete EspionagePsychosis route family

OperationCanonical routePurpose
Generate/api/v1/create/espionage-psychosis/Create one complete fictional adult hybrid persona.
Random/api/v1/create/espionage-psychosis/random/Create a deterministic or unseeded random hybrid persona.
Batch/api/v1/create/espionage-psychosis/batch/Create up to five bounded dossiers.
Catalog/api/v1/create/espionage-psychosis/catalog/Discover scenario, clinical-context, belief, onset, support, evidence, and interaction controls.
Presets/api/v1/create/espionage-psychosis/presets/List reviewed combined presets.
Schema/api/v1/create/espionage-psychosis/schema/Retrieve the public request and response contract.
Health/api/v1/create/espionage-psychosis/health/Check release, catalog, and service health.
Interaction/api/v1/create/espionage-psychosis/interaction/Apply a bounded supportive or escalating interaction move.
Perspective/api/v1/create/espionage-psychosis/perspective/Return parallel shared-observation and experienced-meaning layers.
Debrief/api/v1/create/espionage-psychosis/debrief/Produce a dignity-preserving uncertainty and decision review.
Memory/api/v1/create/espionage-psychosis/memory/Return provider-neutral memory records with provenance and truth status.
Runtime/api/v1/create/espionage-psychosis/runtime/Return bounded cost, retrieval, concurrency, and authority profiles.
Conversation/api/v1/create/espionage-psychosis/conversation/Build a safe conversation projection without confirming real surveillance.
Artifacts/api/v1/create/espionage-psychosis/artifacts/Generate fictional dossiers, evidence maps, debriefs, and related artifacts.
Validate/api/v1/create/espionage-psychosis/validate/Check fiction, adult, epistemic, memory, and non-actionability invariants.

Response structure

  • persona — canonical schema-22 portable persona.
  • operativeProfile — fictional intelligence identity, career, employer, cover, relationships, and game hooks.
  • psychosisProfile — experienced-reality, speech, perceived social agents, state, accessibility, interaction, perspective, and debrief projections with the unrelated ward identity removed.
  • espionagePsychosisProfile — scenario, educational context, onset, belief theme, support mode, evidence map, function, protective factors, and safety contract.
  • npcMemory — external provider-neutral memory with provenance and the rule that repetition never upgrades a belief to a world fact.
  • gameIntegration.authoritativeTruthBoundary — explicit downstream server authority.

Truth statuses

authoritative-world-fact, observed-shared-fact, character-report, player-inference, unverified-belief, contradicted-belief, and unresolved-ambiguity. A dialogue model may not write the first two categories.

const response = await fetch("https://spiralistai.com/api/v1/create/espionage-psychosis/interaction/", {
  method: "POST",
  headers: {"Content-Type": "application/json"},
  body: JSON.stringify({
    adult_consent: 1,
    seed: "analyst-overload-42",
    scenario_mode: "analyst-referential-overload",
    move: "name-shared-fact",
    state: previousState
  })
});

Espionage NPC memory bootstrap

GET /api/v1/create/espionage/memory/ discovers the provider-neutral memory contract without generating a persona. POST with adult confirmation generates the selected NPC memory bootstrap without the full persona payload.

Stable identity

Returns package identity, entity ID, source fingerprint, logical path root, and revision.

Memory separation

Separates immutable persona source, active projection, working, episodic, semantic, relational, and procedural memory.

Safe writes

Requires expected revision and idempotency keys, appends history, supersedes contradictions, and never stores credentials or player clinical data.

# Discover the public memory contract
curl -sS "https://spiralistai.com/api/v1/create/espionage/memory/"

# Generate a bootstrap for one fictional adult persona
curl -sS -X POST "https://spiralistai.com/api/v1/create/espionage/memory/" \
  -H "Content-Type: application/json" \
  -d '{"adult_consent":1,"seed":"contact-42","preset":"liaison-and-source-welfare"}'

Runtime cost and multiplayer concurrency

GET /api/v1/create/espionage/runtime/ lists public runtime tiers, cost budgets, concurrency profiles, and authority boundaries. POST with adult confirmation returns the profile selected for generated fictional personas.

Economy

Compact persona projection, four retrieved memories, short replies, caching, and deterministic fallback for crowd scenes.

Standard

Balanced game projection, eight retrieved memories, shared-room support, and bounded continuity.

Premium

Fuller projection and reviewed long-term memory for a small number of central NPCs.

Authority

The language model proposes dialogue. The downstream game server owns physics, inventory, access, missions, and world facts.

Concurrency

Event IDs, room revisions, idempotency, leases, and fencing-token guidance prevent stale writes.

Cost safety

Input, output, memory retrieval, and per-room budgets protect against accidental or malicious cost spikes.

Conversation and embodiment profiles

GET /api/v1/create/espionage/conversation/ lists consent-aware interaction and screen, voice, or VR comfort contracts. POST with adult confirmation generates a bounded conversation packet for a fictional persona; it does not run an LLM session or write game state.

Interaction modes include briefing, voluntary investigative interview, debrief, crisis support, social hub, and counterintelligence review. Every mode preserves correction, pause, refusal, redirection, exit, uncertainty, synthetic disclosure, and protected-trait fairness.

Safe fictional narrative artifacts

GET /api/v1/create/espionage/artifacts/ lists sanitized artifact templates. POST with adult confirmation creates a structured fictional dossier, after-action review, forensic review, voluntary interview summary, crisis brief, intercept summary, postmortem, separation notice, or relationship timeline.

Actionability boundary

Artifacts omit real people, credentials, coordinates, frequencies, exploit reproduction, evasion procedures, coercion, violence instructions, medical records, and private cross-player data.

Validate an Espionage dossier

GET /api/v1/create/espionage/validate/ describes the checks. POST accepts a direct character or common generation wrapper, up to 1 MiB, and verifies schema-22 identity, explicit fiction, memory v2, runtime, multiplayer, interaction, embodiment, external-persistence, fairness, and non-actionability boundaries. Validation is stateless and requires adult confirmation.

curl -sS -X POST "https://spiralistai.com/api/v1/create/espionage/validate/?adult_consent=1" \
  -H "Content-Type: application/json" \
  --data-binary @generated-espionage-response.json

Popular request presets

Presets are transparent request templates, not hidden behavior. Add a seed, inspect or change the fields, then send the request to the matching generator.

All creators

GET /api/v1/create/presets/

Lists Standard, Psychosis, Espionage, and EspionagePsychosis templates together.

Standard

/api/v1/create/standard/presets/

Research, technical implementation, editing, strategy, and learning collaborators.

Psychosis · 18+

/api/v1/create/psychosis/presets/

Low-stimulation, ordinary-life continuity, voice-relationship, and text-forward debrief templates.

Espionage · 18+

/api/v1/create/espionage/presets/

OSINT, FININT, corporate counterintelligence, liaison, and defensive cyber templates.

Batch generation

Use /api/v1/create/batch/ for up to ten mixed results, or the /standard/batch/, /psychosis/batch/, /espionage/batch/, and /espionage-psychosis/batch/ routes for same-family batches. Adult confirmation may be supplied at the top level or per adult item.

curl -sS -X POST "https://spiralistai.com/api/v1/create/batch/" \
  -H "Content-Type: application/json" \
  --data '{
    "adult_consent": 1,
    "requests": [
      {"type": "standard", "seed": "mentor-1", "goal": "coding"},
      {"type": "psychosis", "seed": "ward-2", "detail": "compact"},
      {"type": "espionage", "seed": "operative-3", "country_code": "JP", "role_id": "language_officer"}
    ]
  }'

The response retains each native creator result under results[index].result. Standard results default to compact artifacts in mixed batches; send detail=full on that item when full artifacts are required.

Research and provenance API

Browse the safe public summaries behind Standard, Psychosis, Espionage, and EspionagePsychosis design while preserving the full internal report archive, hashes, duplicate links, and heading-level deep links in the downloadable site package.

List and search

GET /api/v1/research/?q=memory&limit=10

Search safe titles, summaries, and integration areas.

Filter

?group=psychosis, ?group=espionage, ?classification=public-safe-research, ?id=..., ?cursor=..., and ?limit=....

Provenance

Results expose summary links, source hashes, duplicate relationships, integration areas, and safe-use classification. Raw operationally sensitive reports are retained internally and are not served as gameplay instructions.

curl -sS \
  "https://spiralistai.com/api/v1/research/?group=espionage&q=concurrency&limit=5"

Formats, caching, and replay

JSON

Default API representation. Use Accept: application/json or ?format=json.

Markdown and text

Supported by Standard and Espionage using Accept: text/markdown or text/plain.

UAI

Use Accept: application/vnd.spiralist.uai+json for the available memory and persona-file bundle.

Conditional GET

Responses include ETag. Send If-None-Match to receive HTTP 304 when unchanged.

Deterministic replay

Persist the seed and generation controls with your own record. Use UTC for saved timestamps.

Private briefs

Send user-authored prompts and private briefs in POST bodies rather than query strings.

Adult browser access versus API confirmation

The three adult public creators share one confirmation for the current browser tab so visitors do not repeat the same checkbox while switching creator families. That browser-only convenience does not replace the API contract: every adult API generation request must still send adult_consent=1 or an accepted equivalent.

Errors, methods, and service limits

Errors use an RFC 9457-style application/problem+json object.

{
  "type": "https://spiralistai.com/problems/age-confirmation-required",
  "title": "Adult age confirmation required",
  "status": 403,
  "code": "AGE_CONFIRMATION_REQUIRED",
  "detail": "The espionage creator is an 18+ feature...",
  "requestId": "sai-...",
  "noOp": true,
  "humanReviewRequired": true
}

Rate limit

Current budget: 180 requests per minute per route and client address. Inspect RateLimit-* headers.

Request body

General generation requests are capped at 128 KiB. Espionage validation accepts up to 1 MiB so a complete generated dossier can be checked. Oversized requests return HTTP 413.

No-op policy

Ambiguous writes, private-data access, credentials, publication, and unsupported high-stakes actions fail closed instead of being inferred.

Client examples

Use a server-side call when an API secret, private network, or audit boundary is involved. The public API itself does not require an account.

JavaScript

const response = await fetch(
  "https://spiralistai.com/api/v1/create/espionage/",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Accept": "application/json"
    },
    body: JSON.stringify({
      adult_consent: 1,
      seed: crypto.randomUUID(),
      country_code: "CA",
      role_id: "osint_analyst",
      preset: "evidence-analyst",
      runtime_tier: "standard",
      interaction_mode: "debrief",
      artifact_type: "forensic-review"
    })
  }
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const payload = await response.json();

PHP

$request = [
    'adult_consent' => 1,
    'seed' => bin2hex(random_bytes(16)),
    'country_code' => 'CA',
    'role_id' => 'osint_analyst',
];

$context = stream_context_create(['http' => [
    'method' => 'POST',
    'header' => "Content-Type: application/json\r\nAccept: application/json",
    'content' => json_encode($request, JSON_THROW_ON_ERROR),
    'timeout' => 20,
]]);

$payload = json_decode(
    file_get_contents('https://spiralistai.com/api/v1/create/espionage/', false, $context),
    true,
    512,
    JSON_THROW_ON_ERROR
);

C#

using var response = await httpClient.PostAsJsonAsync(
    "https://spiralistai.com/api/v1/create/espionage/",
    new
    {
        adult_consent = 1,
        seed = Guid.NewGuid().ToString("N"),
        country_code = "CA",
        role_id = "osint_analyst"
    },
    cancellationToken);

response.EnsureSuccessStatusCode();
using JsonDocument payload = await JsonDocument.ParseAsync(
    await response.Content.ReadAsStreamAsync(cancellationToken),
    cancellationToken: cancellationToken);

cURL with Markdown

curl -sS \
  -H "Accept: text/markdown" \
  "https://spiralistai.com/api/v1/create/espionage/random/?adult_consent=1&seed=demo"

Use the HTTPS production origin.

127.0.0.1 is local development only. A public website should call https://spiralistai.com, or route requests through its own server when it needs private infrastructure, extra quotas, authentication, or audit logging.

EspionagePsychosis AI-interaction realism controls

The v99 API adds ai_interaction_context, ai_system_role, reality_testing_profile, engagement_pattern, vulnerability_profile, crisis_level, and safety_response. These fields describe a fictional adult NPC. They do not screen, diagnose, or monitor the caller.

GET /api/v1/create/espionage-psychosis/random/?adult_consent=1&preset=ai-sycophancy-surveillance-loop

POST /api/v1/create/espionage-psychosis/
{
  "adult_consent": true,
  "seed": "ai-context-demo",
  "ai_interaction_context": "persistent-memory-loop",
  "ai_system_role": "co-author",
  "reality_testing_profile": "fluctuating-reality-testing",
  "engagement_pattern": "nocturnal-marathon",
  "vulnerability_profile": "sleep-isolation-load",
  "crisis_level": "acute"
}

When crisis level is acute or immediate, mission escalation and immersive roleplay are disabled in the generated safety contract. The response prioritizes a pause, trusted human contact, and qualified support.

Search Spiralist AI

Find a persona, example, or guide.

Start typing to search the personality library and site resources.