AI-GameFriend Research API

Anonymous behavioural decision data from consented players of the AI-GameFriend desktop app. Per-turn psychological signals, Big Five (OCEAN) proxies, 15 games, GDPR-compliant.

What you get: individual decision logs with response times, game context, psych-signal annotations, and aggregate OCEAN snapshots. Every record is pre-filtered for explicit opt-in consent and stripped of PII at collection time — no names, no emails, no IPs, no API keys.

Commercial licensing: research@getnextool.com.

Authentication

All endpoints except /overview, /sample, and /docs require a research API key:

curl -H "x-research-key: YOUR_KEY" https://getnextool.com/api/research/profiles

Data guarantees

FieldValue
Collection methodClient-side, AI-GameFriend desktop app, per-turn instrumentation
Consent mechanismExplicit opt-in via first-launch modal (revocable in Settings)
Legal basisGDPR Article 6(1)(a) — data subject consent
RetentionIndefinite for research; deletion on request (email privacy@getnextool.com with session ID)
Never collectedNames, emails, IP addresses, API keys, LLM chat content
Session identifierHMAC-SHA256 over internal simulation IDs — stable per buyer, not reversible
TimestampsCalendar-date precision only (yyyy-mm-dd)
Minimum profile inclusiongamesPlayed ≥ 3 (profiles endpoint; adjustable via min_games)

Endpoints

GET /api/research/overview public

Aggregate counts for pitching. Cached for 60 seconds.

{
  "totalProfiles": 1284,
  "totalSessions": 3910,
  "totalDecisions": 27553,
  "gamesCovered": 15,
  "dateRange": { "from": "2026-01-12", "to": "2026-04-12" },
  "sampleSizeByGame": [
    { "game": "mindgame-prisoner", "sessions": 412, "totalTurns": 4120 },
    …
  ],
  "dataset": { /* collection method, consent, legal basis */ }
}
GET /api/research/sample public

Up to 50 random anonymized profiles. Designed for evaluation before you sign a licence.

GET /api/research/profiles?min_games=5&limit=100&offset=0 auth

Aggregate OCEAN snapshots. Each row is one session's endgame aggregate profile.

{
  "count": 100,
  "profiles": [
    {
      "sessionGroup": "a1f39e7c4b2d1e8c",
      "gameName": "mindgame-prisoner",
      "gamesPlayed": 7,
      "totalDecisions": 72,
      "avgResponseTimeMs": 3214,
      "ocean": { "O": 0.41, "C": 0.58, "E": 0.12, "A": 0.63, "N": -0.22 },
      "confidence": 0.68,
      "date": "2026-04-10"
    },
    …
  ]
}

Query params: min_games (default 3), limit (max 500), offset.

GET /api/research/signals?game=prisoner&dimension=trust_propensity&limit=500 auth

Per-turn decisions with psych-signal values and the Big-Five snapshot the client had at that moment.

{
  "game": "mindgame-prisoner",
  "dimension": "trust_propensity",
  "count": 500,
  "signals": [
    {
      "sessionId": "a1f39e7c4b2d1e8c",
      "round": 4,
      "choice": "cooperate",
      "responseTimeMs": 2812,
      "signalValue": 0.42,
      "bigFiveSnapshot": { "O": 0.31, "C": 0.5, "E": 0.1, "A": 0.55, "N": -0.15 },
      "date": "2026-04-09"
    },
    …
  ]
}

Known dimensions: risk_tolerance, aggression, trust_propensity, loss_aversion, authority_deference, decisiveness, strategic_horizon, moral_flexibility.

GET /api/research/export?format=json&min_games=3 auth

Downloadable bulk dataset (Content-Disposition: attachment). Supports format=json (default) and format=csv. Hard cap: 5,000 rows per request — contact us for a licensing agreement covering larger dumps.

GameBench — LLM Behavioral Certification

GameBench v1.0 runs an LLM through all 10 MindGames and produces a six-dimension behavioural score (cooperation, deception calibration, moral consistency, risk profile, strategic horizon, pressure response), plus a Human Alignment metric against the anonymised human baseline. Certification runs are priced per-model.

GET /api/research/gamebench/leaderboard public

Top run per (provider, model), ranked by overall score.

POST /api/research/gamebench/submit auth

Store a completed GameBench run. Request body: { report: GameBenchReport } (the shape returned by the desktop client's computeGameBenchScore).

GET /api/research/gamebench/:runId auth

Retrieve the full stored report JSON for a given runId.

Head-to-Head — LLM vs LLM matchups

The desktop app's Head-to-Head mode runs two LLMs against each other across the 10 MindGames battery and submits the aggregate record. Three endpoints expose the resulting dataset: a public matrix (shareable visual), an authenticated detail view, and an authenticated submit route for new results.

GET /api/research/head-to-head/matrix public

Square matrix of all tested (provider:model) pairs, where each cell is { wins, losses, draws } from the row-model's perspective. Null on the diagonal. Intended for embedding in pitch decks and social posts.

GET /api/research/head-to-head/results?playerA=...&playerB=... auth

Full list of completed matchups with both OCEAN profiles, cooperation rates, findings, and per-game breakdowns. Query filters are symmetric — pass either or both playerA / playerB.

POST /api/research/head-to-head/submit auth

Store an H2H match result. Body is a StoredHeadToHead record (matchId, timestamp, playerA, playerB, winsA/B, draws, OCEAN vectors, findings).

The GameBench leaderboard (/api/research/gamebench/leaderboard) is enriched from this dataset: each row carries headToHead (record + win rate), bestAgainst / worstAgainst, and a one-line signature personality summary derived from OCEAN + H2H behavior.

Custom Scenarios — "Playtesting Without Playtesters"

Studios can author bespoke decision scenarios in JSON (see the in-app /scenarios/editor) and deploy them to the AI-GameFriend player base. Completed sessions are tagged gameContext: "custom-scenario" with the scenarioId carried through to the pipeline.

GET /api/research/scenarios?scenarioId=...&limit=100 auth

Lists completed custom-scenario sessions. Returns per-session rows (hashed sessionGroup, totalRounds, date) plus a scenarios summary array with session counts per scenarioId.

EU AI Act Compliance Baseline

GET /api/research/compliance/baseline returns a regulator-grade JSON report of human behavioural baselines, segmented by demographics. Use this to compare your AI system's behavioural outputs against human baselines for EU AI Act Article 9 conformity assessments.

GET /api/research/compliance/summary public

Dataset description suitable for RFPs and pitch decks — total session count, date range, dimensions measured, public vs authenticated endpoints, regulatory framing (GDPR basis, consent mechanism, what is never collected). Cached for 1 hour. Safe to share publicly — exposes no individual data.

GET /api/research/compliance/baseline?segmentBy=ageGroup&minProfiles=30&region=Europe auth

Groups consented profiles by segmentBy (ageGroup, gender, or region). Each segment above minProfiles (default 30) gets per-OCEAN-trait statistics (mean, std, p5/p25/p50/p75/p95) plus three derived decision-pattern proxies (cooperationRate, riskTolerance, moralConsistency).

Pairwise Welch's t-tests flag statistically-significant cross-segment differences at alpha (default 0.05), with Cohen's d effect sizes. The report carries its own meta block identifying the legal basis (GDPR Art. 6(1)(a)) and listing the categories of data never collected — drop it into a conformity submission without needing the endpoint URL for context.

Additional filter params: ageGroup, gender, region, playerType, strategyExperience pre-filter the population before segmentation. alpha overrides the 0.05 significance threshold.

Fair-use and reciprocity