Documentation

GhostPlay API

Run your live-service game economy through GhostPlay's economy verification runtime, inject economic stress tests, and receive a severity-rated economy findings report — all via REST.

Base URL: https://api.ghostplay.tech

GhostPlay runs 5,000 deterministic parametric personas through your game economy for 360 simulated days at 50× real-time speed. Agents operate via scripted Behavior Trees — fully deterministic, producing zero-variance results across identical seed runs. Three stress vectors inject at Day 180. At the end, every Systemic Asset Class is evaluated against a ≤5% MAPE accuracy gate. The result is a severity-rated findings report — a per-class economy-health read — delivered as a PDF.

The API is JSON over HTTPS. Authentication is via a per-customer API key passed as a request header. All audit jobs are scoped to the key that created them — customer data is fully isolated.


Authentication

Protected endpoints require an X-API-Key header. API keys are issued per customer by the GhostPlay team — there is no self-serve key generation. Keys follow the format sk_prod_<customer>_<random>.

# Include with every authenticated request
curl https://api.ghostplay.tech/api/v1/audits \
  -H "X-API-Key: sk_prod_acme_xxxxxxxxxxxx"
HTTP statusMeaning
401Missing or invalid API key
403Valid key but wrong customer — resource belongs to another account
422Missing required header (validation error)

To get an API key, contact us. Keys are provisioned within 24 hours of a signed pilot agreement.


Quickstart

Submit an audit, poll for completion, and download the report in three steps.

01

Submit an audit

POST a display name to get a job_id immediately. game_binary_url is optional — omit it for a first test (schema-mode).

curl -X POST https://api.ghostplay.tech/api/v1/audits \
  -H "X-API-Key: sk_prod_acme_xxxx" \
  -H "Content-Type: application/json" \
  -d '{"game_name":"MyGame v2.1"}'

# Response
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "sla_hours": 48,
  "next_check": "/api/v1/audits/550e8400-..."
}
02

Poll for status

Check the job status using the job_id. Typical completion is within 48 hours.

curl https://api.ghostplay.tech/api/v1/audits/550e8400-... \
  -H "X-API-Key: sk_prod_acme_xxxx"

# Response when complete
{
  "job_id": "550e8400-...",
  "status": "completed",
  "created_at": "2026-05-29T10:00:00Z",
  "completed_at": "2026-05-29T20:14:00Z"
}
03

Download your report

When status is completed, retrieve the PDF findings report download URL.

curl https://api.ghostplay.tech/api/v1/audits/550e8400-.../report \
  -H "X-API-Key: sk_prod_acme_xxxx"

# Response
{
  "job_id": "550e8400-...",
  "report_url": "https://storage.ghostplay.tech/reports/...",
  "expires_at": "2026-06-28T20:14:00Z"
}

Endpoints

GET /health public Health check
{
  "status": "ok"
}
POST /api/v1/audits API key Submit a new audit
FieldTypeRequiredDescription
game_binary_urlstringNoOptional HTTPS URL to your UE5 Lyra game binary. Omit to run in schema-mode (Phase 1 simulation only — binary ingestion is Phase 2).
game_namestringYesDisplay name for the audit (metadata only)
{
  "job_id": "uuid",
  "status": "queued",
  "sla_hours": 48,
  "next_check": "/api/v1/audits/{job_id}"
}
GET /api/v1/audits API key List all audits for your account
{
  "customer_id": "your_studio",
  "total_audits": 3,
  "audits": [
    {
      "job_id": "uuid",
      "status": "completed",
      "created_at": "2026-05-29T10:00:00Z",
      "completed_at": "2026-05-29T20:14:00Z"
    }
  ]
}
GET /api/v1/audits/{job_id} API key Get audit status
{
  "job_id": "uuid",
  "status": "queued" | "running" | "completed" | "failed",
  "created_at": "ISO 8601",
  "started_at": "ISO 8601 or null",
  "completed_at": "ISO 8601 or null",
  "error_message": "string or null",
  "economy_mbr": "float or null" // Mint-to-Burn Ratio (baseline),
  "economy_health": "healthy" | "collapse_risk" or null
}
GET /api/v1/audits/{job_id}/report API key Download PDF findings report

Only available when status = "completed". Returns a signed download URL valid for 30 days.

{
  "job_id": "uuid",
  "report_url": "https://...",
  "expires_at": "ISO 8601"
}

Job lifecycle

Audit jobs move through four states. Poll GET /api/v1/audits/{job_id} to track progress. We recommend polling every 30 minutes — the simulation runs for up to 48 hours.

queued running completed / failed
StatusDescription
queuedJob accepted, waiting for a verification slot
runningVerification in progress — 5,000 parametric personas active
completedVerification complete, MAPE validated, report ready
failedVerification error — error_message contains details. Contact support.

Error codes

CodeMeaningResolution
400Report not availableJob is not yet completed
401Invalid API keyCheck your X-API-Key header value
403Access deniedJob belongs to a different customer account
404Job not foundVerify the job_id is correct
422Validation errorMissing required field or header — check request body
500Server errorContact alexander@ghostplay.tech

How verification works

GhostPlay uses a headless Unreal Engine 5 runtime to run your game economy through a deterministic verification process — the same engine your game runs on, no approximations or proxies.

01

Binary ingestion

Your UE5 Lyra game binary is validated, unpacked, and loaded into the GhostPlay verification runtime. Economy parameters, asset class definitions, and progression curves are extracted automatically.

02

Agent initialisation — 5,000 players

Two deterministic personas are instantiated: Exploiters (players who systematically probe economy mechanics for arbitrage) and Whales (high-spend players whose churn behaviour dominates revenue models). All agents are seeded deterministically — every run with the same binary produces identical results.

03

360-day simulation at 50× speed

Agents play through 360 simulated days. Wall-clock time: under 48 hours. Telemetry is captured at every tick across all four Systemic Asset Classes.

04

Stress vector injection at Day 180

Three economic shocks inject simultaneously at Day 180 — the standard Major Expansion window for live-service titles. See Stress vectors.

05

MAPE validation and findings

Post-shock telemetry (Days 180–360) is evaluated against the Control Baseline. Each asset class is scored against the ≤5% MAPE gate independently. The result is a severity-rated findings report: a per-class economy-health read flagging each class as within tolerance or drifting, and by how much.


Stress vectors

Three deterministic shocks inject at Day 180 — the Major Expansion window used by all major live-service titles. They model the three highest-consequence economic failure modes in the industry.

Vector A

Exploit Shock

Transaction volume across all Exploiter agents spikes +300%. Models a coordinated economy exploit — duplication bugs, arbitrage loops, or rapid-fire crafting exploits. Surfaces hyperinflation and resource sink failures in the Fiat and Velocity Catalyst asset classes.

Vector B

Whale Flight

The top 10% of spending players churn simultaneously. Models the revenue collapse scenario that follows a major content disappointment or competitive title launch. Surfaces progression wall failures and Wildcard Faucet imbalances in the Progression Sink and Wildcard Faucet classes.

Vector C

Progression Overdrive

Class 2 and Class 4 velocity spikes to ≥400% and ≥200% respectively. Models aggressive battle-pass farming or a viral meta-game strategy. Surfaces economy compression and endgame content depletion across all four asset classes.


MAPE accuracy gate

GhostPlay validates your economy model's predictive accuracy using Mean Absolute Percentage Error (MAPE). The gate is ≤5% per Systemic Asset Class — independently. There is no averaging across classes and no fallback.

MAPE ≤ 5% per asset class — the per-class accuracy gate. Any class exceeding 5% is flagged in the findings report with its drift severity.

MAPE is computed against the Control Baseline: the frozen telemetry from Days 1–180 pre-shock. Post-shock telemetry (Days 180–360) is evaluated against model predictions. A MAPE above 5% means your economy model cannot predict its own behaviour under stress — a reliable predictor of post-launch instability.

The 5% gate is immutable. It cannot be relaxed for a specific audit or client. This ensures the findings report carries genuine analytical weight with publishers, investors, and acquirers.


Systemic Asset Classes

GhostPlay validates four Systemic Asset Classes — the four dimensions along which live-service economies structurally fail. Each must independently pass the ≤5% MAPE gate.

Fiat
Hard currency flows — premium and earned. Inflation detection.
Velocity Catalyst
Consumables and boosters that accelerate progression curves.
Progression Sink
XP, levels, battle pass tracks. Long-term player engagement.
Wildcard Faucet
Random-output systems: loot boxes, gacha, seasonal drops.

FAQ

What game engine and binary format is required?
GhostPlay requires a Unreal Engine 5 Lyra-compatible headless Linux binary. The binary must expose the GhostPlay Economy Extension plugin (GhostPlay_EconomyExtension). Integration typically takes 1–2 days for a studio already on UE5 Lyra. Contact us if you need integration support.
What if my economy breaches the MAPE gate?
You still receive the full PDF findings report. It will detail which asset classes breached the gate, the magnitude of the divergence, and the stress vector that triggered it. Most studios use this to identify and fix specific economy parameters, then re-submit.
How is data isolation enforced?
Each API key is scoped to a single customer ID. All audit jobs, status checks, and report downloads are filtered by customer ID server-side — it is not possible to access another customer's data with your key. Game binaries are stored in isolated, encrypted object storage and deleted after report generation.
Can I run multiple audits in parallel?
Yes. You can submit multiple jobs simultaneously. Jobs are queued and processed as simulation slots become available. Each runs as a fully independent simulation — there is no shared state between concurrent audits.
Is the simulation truly deterministic?
Yes. All 5,000 agents are seeded deterministically. Submitting the same binary twice produces identical telemetry and an identical per-class read. This determinism is a core design requirement — it's what lets the findings report be independently reproduced and verified by publishers and acquirers.
What does the findings report contain?
The report includes: the severity-rated per-class economy-health read (each class within tolerance or drifting, and by how much), per-asset-class MAPE scores, stress vector impact charts for all three vectors, pre- and post-shock telemetry summaries, and the simulation metadata (agent count, seed, binary hash, run timestamp). It is formatted for board, publisher, and investor presentation.

Get an API key

GhostPlay is in private beta. API keys are issued to studios with a signed pilot agreement. To get started:

  1. Email alexander@ghostplay.tech with your studio name and the title you want to validate
  2. We'll schedule a 30-minute scoping call
  3. Sign the pilot agreement and schedule your integration call
  4. Receive your API key and integration guide within 24 hours

In a hurry? Request an audit from the homepage and we'll be in touch within 24 hours.