api.koydo.app

The Koydo Developer API

Four deterministic JSON engines behind one gateway — learning science, gamification, math, and music economics. Same request in, byte-identical response out. No model hosting, no per-call AI cost.

4 APIs · 46 actions · API-key auth · per-key rate limits

Authentication

Every POST needs an API key. GET a route to read its action catalog for free. Send your key as a bearer token or the x-api-key header:

Authorization: Bearer kapi_your_key_here
# — or —
x-api-key: kapi_your_key_here

Responses carry X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Over the limit returns 429 with Retry-After. Missing or invalid keys return 401.

Quickstart

curl -s https://api.koydo.app/api/learning/engine \
  -H 'authorization: Bearer kapi_your_key_here' \
  -H 'content-type: application/json' \
  -d '{
    "action": "srs.schedule",
    "payload": {
      "card": { "stability": 1, "difficulty": 5,
                "lastReviewedAt": "2026-01-01T00:00:00.000Z",
                "reps": 0, "lapses": 0 },
      "grade": 2,
      "nowIso": "2026-01-01T00:00:00.000Z"
    }
  }'
# → { "action": "srs.schedule",
#     "result": { "card": {…}, "nextDueAt": "2026-01-03T00:00:00.000Z", "intervalDays": 2 } }

Learning Science API

Spaced repetition, Bayesian mastery tracing, adaptive testing, exam readiness, misconception detection.

POST /api/learning/engine GET /api/learning/engine — free catalog
actiondescription
srs.newCardCreate a fresh spaced-repetition card.
srs.scheduleApply a review grade (0=again,1=hard,2=good,3=easy); returns next due date + interval.
srs.retrievabilityCurrent recall probability of a card at a point in time.
bkt.predictProbability the next answer is correct given current mastery (Bayesian Knowledge Tracing).
bkt.updatePosterior mastery after observing one correct/incorrect response.
bkt.traceTrace mastery across a response sequence; optional threshold returns when mastery is first reached.
cat.stepOne computerized-adaptive-testing step: estimate ability (3PL IRT), decide stop, pick next item.
readinessBlueprint-weighted exam readiness from per-domain mastery; flags weakest domains.
misconception.detectRank misconceptions from tagged responses with recency-weighted decay.
spacing.recommendOptimal study spacing (Cepeda 2006): massed vs spaced + inter-study gap in days.

Gamification API

XP & levels, an idempotent soft-currency economy, streaks, rewards, leagues, skill rating, FSRS review.

POST /api/game/engine GET /api/game/engine — free catalog
actiondescription
progression.awardAward XP; returns previous/next level info and whether the learner leveled up.
progression.levelInfoResolve level, progress, and next-level threshold for a total XP value.
economy.earnCredit soft currency (idempotent by sourceId, daily-capped).
economy.spendDebit soft currency (idempotent, rejects insufficient balance).
streak.recordRecord a day of activity; advances, holds, or breaks the streak.
reward.resolveResolve the reward bundle for a reason (optionally scaled by a streak multiplier).
skill.eloUpdate learner & item Elo ratings from one correct/incorrect outcome.
skill.expectedScoreProbability learner (ratingA) beats item/opponent (ratingB).
review.newCardCreate a fresh FSRS review card (game-os EpochDay variant).
review.scheduleApply a recall grade (1–4) to a card; returns next card state, interval, due day.
achievement.evaluateEvaluate which achievements are unlocked for a lifetime-stats snapshot.
league.rankRank league members deterministically by score (with tie-breaks).

Math Engine API

Parametric problem generation, exact answer grading, adaptive next-problem selection, geometry & stats.

POST /api/math/engine GET /api/math/engine — free catalog
actiondescription
startCreate a fresh learner model.
skillsList generatable core + geometry skills.
recommendNext problem recommendation for a model.
submitSubmit an answer; returns updated model + grade.
generateGenerate a practice problem for a skill + seed.
geometryGenerate a geometry problem for a skill + seed.
gradeGrade an answer against an expected value.

Music Economics API

Royalty splits, mechanical & performance royalties, streaming economics, quality gates, identifiers.

POST /api/music/engine GET /api/music/engine — free catalog
actiondescription
music.royalty.allocate_poolAllocate a rights pool's gross (cents) across parties by basis-point shares (exact, largest-remainder).
music.royalty.run_periodRun a royalty period across multiple rights pools with advance recoupment.
music.accounting.run_royalty_baseCompute PPD/SRLP royalty-base deductions and cross-release recoupment for a label accounting period.
music.mechanical.statutory_rateSection 115 statutory mechanical rate (millicents) for a track of the given duration in seconds.
music.mechanical.streaming_poolPhono IV interactive-streaming mechanical pool (three-prong greater-of) for a service tier/period.
music.quality.evaluate_masterEvaluate an audio master against a platform loudness/format target. Returns pass + per-check results + recommended gain.
music.quality.measure_pcm_loudnessMeasure 48 kHz PCM arrays with BS.1770 K-weighting, gated LUFS, and deterministic 4x true peak.
music.quality.evaluate_pcm_masterMeasure PCM with BS.1770, then evaluate the computed LUFS/true-peak metrics against a platform target.
music.quality.evaluate_spatial_masterEvaluate an Apple Music Atmos / Amazon Music 3D master for -18 LKFS, true peak, channel layout, and ADM-BWF/DAMF delivery format.
music.quality.validate_beatport_metadataValidate Beatport delivery metadata: current genre taxonomy, BPM, Camelot/Open-Key, featuring field, and 3000px RGB artwork.
music.metadata.score_mead_enrichmentScore DDEX MEAD enrichment completeness and return DSP-facing credit, lyric, AI-disclosure, and fingerprint risk flags.
music.licensing.quote_sync_master_feeReturn a deterministic sync + master-use benchmark quote by media type, territory, term, usage, and budget tier.
music.economics.estimate_revenueEstimate streaming revenue (cents + millicents) from a {dsp → stream count} map.
music.catalog.sequence_playlistOrder tracks into a harmonic/energy flow (Camelot wheel) with deterministic transitions.
music.rights.scan_leakageScan a catalog of work registrations for black-box leakage (unlinked ISRC↔ISWC, incomplete splits).
music.composition.realise_recipeRealise a composition recipe (key/mode/tempo/meter + roman-numeral progression) into concrete chords.
music.identifier.validateValidate a music identifier. kind ∈ isrc|upc|ean13|iswc|isni; returns {valid}.