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 status | Meaning |
|---|---|
401 | Missing or invalid API key |
403 | Valid key but wrong customer — resource belongs to another account |
422 | Missing 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.
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-..." }
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" }
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
{
"status": "ok"
}
| Field | Type | Required | Description |
|---|---|---|---|
game_binary_url | string | No | Optional HTTPS URL to your UE5 Lyra game binary. Omit to run in schema-mode (Phase 1 simulation only — binary ingestion is Phase 2). |
game_name | string | Yes | Display name for the audit (metadata only) |
{
"job_id": "uuid",
"status": "queued",
"sla_hours": 48,
"next_check": "/api/v1/audits/{job_id}"
}
{
"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"
}
]
}
{
"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
}
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.
| Status | Description |
|---|---|
queued | Job accepted, waiting for a verification slot |
running | Verification in progress — 5,000 parametric personas active |
completed | Verification complete, MAPE validated, report ready |
failed | Verification error — error_message contains details. Contact support. |
Error codes
| Code | Meaning | Resolution |
|---|---|---|
400 | Report not available | Job is not yet completed |
401 | Invalid API key | Check your X-API-Key header value |
403 | Access denied | Job belongs to a different customer account |
404 | Job not found | Verify the job_id is correct |
422 | Validation error | Missing required field or header — check request body |
500 | Server error | Contact 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.
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.
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.
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.
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.
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.
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.
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.
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.
FAQ
GhostPlay_EconomyExtension). Integration typically takes 1–2 days for a studio already on UE5 Lyra. Contact us if you need integration support.Get an API key
GhostPlay is in private beta. API keys are issued to studios with a signed pilot agreement. To get started:
- Email alexander@ghostplay.tech with your studio name and the title you want to validate
- We'll schedule a 30-minute scoping call
- Sign the pilot agreement and schedule your integration call
- 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.