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.
| action | description |
|---|---|
| srs.newCard | Create a fresh spaced-repetition card. |
| srs.schedule | Apply a review grade (0=again,1=hard,2=good,3=easy); returns next due date + interval. |
| srs.retrievability | Current recall probability of a card at a point in time. |
| bkt.predict | Probability the next answer is correct given current mastery (Bayesian Knowledge Tracing). |
| bkt.update | Posterior mastery after observing one correct/incorrect response. |
| bkt.trace | Trace mastery across a response sequence; optional threshold returns when mastery is first reached. |
| cat.step | One computerized-adaptive-testing step: estimate ability (3PL IRT), decide stop, pick next item. |
| readiness | Blueprint-weighted exam readiness from per-domain mastery; flags weakest domains. |
| misconception.detect | Rank misconceptions from tagged responses with recency-weighted decay. |
| spacing.recommend | Optimal 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.
| action | description |
|---|---|
| progression.award | Award XP; returns previous/next level info and whether the learner leveled up. |
| progression.levelInfo | Resolve level, progress, and next-level threshold for a total XP value. |
| economy.earn | Credit soft currency (idempotent by sourceId, daily-capped). |
| economy.spend | Debit soft currency (idempotent, rejects insufficient balance). |
| streak.record | Record a day of activity; advances, holds, or breaks the streak. |
| reward.resolve | Resolve the reward bundle for a reason (optionally scaled by a streak multiplier). |
| skill.elo | Update learner & item Elo ratings from one correct/incorrect outcome. |
| skill.expectedScore | Probability learner (ratingA) beats item/opponent (ratingB). |
| review.newCard | Create a fresh FSRS review card (game-os EpochDay variant). |
| review.schedule | Apply a recall grade (1–4) to a card; returns next card state, interval, due day. |
| achievement.evaluate | Evaluate which achievements are unlocked for a lifetime-stats snapshot. |
| league.rank | Rank league members deterministically by score (with tie-breaks). |
Math Engine API
Parametric problem generation, exact answer grading, adaptive next-problem selection, geometry & stats.
| action | description |
|---|---|
| start | Create a fresh learner model. |
| skills | List generatable core + geometry skills. |
| recommend | Next problem recommendation for a model. |
| submit | Submit an answer; returns updated model + grade. |
| generate | Generate a practice problem for a skill + seed. |
| geometry | Generate a geometry problem for a skill + seed. |
| grade | Grade an answer against an expected value. |
Music Economics API
Royalty splits, mechanical & performance royalties, streaming economics, quality gates, identifiers.
| action | description |
|---|---|
| music.royalty.allocate_pool | Allocate a rights pool's gross (cents) across parties by basis-point shares (exact, largest-remainder). |
| music.royalty.run_period | Run a royalty period across multiple rights pools with advance recoupment. |
| music.accounting.run_royalty_base | Compute PPD/SRLP royalty-base deductions and cross-release recoupment for a label accounting period. |
| music.mechanical.statutory_rate | Section 115 statutory mechanical rate (millicents) for a track of the given duration in seconds. |
| music.mechanical.streaming_pool | Phono IV interactive-streaming mechanical pool (three-prong greater-of) for a service tier/period. |
| music.quality.evaluate_master | Evaluate an audio master against a platform loudness/format target. Returns pass + per-check results + recommended gain. |
| music.quality.measure_pcm_loudness | Measure 48 kHz PCM arrays with BS.1770 K-weighting, gated LUFS, and deterministic 4x true peak. |
| music.quality.evaluate_pcm_master | Measure PCM with BS.1770, then evaluate the computed LUFS/true-peak metrics against a platform target. |
| music.quality.evaluate_spatial_master | Evaluate 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_metadata | Validate Beatport delivery metadata: current genre taxonomy, BPM, Camelot/Open-Key, featuring field, and 3000px RGB artwork. |
| music.metadata.score_mead_enrichment | Score DDEX MEAD enrichment completeness and return DSP-facing credit, lyric, AI-disclosure, and fingerprint risk flags. |
| music.licensing.quote_sync_master_fee | Return a deterministic sync + master-use benchmark quote by media type, territory, term, usage, and budget tier. |
| music.economics.estimate_revenue | Estimate streaming revenue (cents + millicents) from a {dsp → stream count} map. |
| music.catalog.sequence_playlist | Order tracks into a harmonic/energy flow (Camelot wheel) with deterministic transitions. |
| music.rights.scan_leakage | Scan a catalog of work registrations for black-box leakage (unlinked ISRC↔ISWC, incomplete splits). |
| music.composition.realise_recipe | Realise a composition recipe (key/mode/tempo/meter + roman-numeral progression) into concrete chords. |
| music.identifier.validate | Validate a music identifier. kind ∈ isrc|upc|ean13|iswc|isni; returns {valid}. |