Polyfill

API

Everything on a mod's page, as data. No key and no sign-up.

One mod

GET https://polyfill.doomods.com/api/board/<slug>

The slug is the last part of the mod's page address. A mod the index does not list answers 404.

slug, name, author
As reported.
entries[]
One per game version, newest first. The answer on the page is read from here.
builds[]
Every finding, per game version and mod version.
history[]
What each Polyfill release said about each version of the mod.
errors[]
What it threw ingame, most common first.
playerReports[]
What players wrote on the mod's page, newest first.
findings[], olderFindings[]
builds folded per name: the newest game version, and every other.
play, reports, lastSeen
The newest game version's sessions, all reports, and the newest report.

entries[]

gameVersion
The game version this entry answers for.
modVersion
The newest version of the mod reported on it.
verdict
clean, adaptable or blocked, after the index rule.
reported
The same before the index rule. Differs only where a cloned screen was the whole reason.
tally
Reports per verdict: clean, adaptable, blocked.
reports
Reports about this mod version.
reportsEveryVersion
Reports on this game version about any mod version.
findings
How many findings are on record for this build.
wants
Clicks on "I want this fixed" on this game version. The page hides it while the mod works.
play
sessions, cleanSessions, errorSessions, minutes. null until somebody played long enough.
lastSeen
ISO 8601, UTC.

The page prints "Works" when verdict is not blocked and cleanSessions is larger than errorSessions.

builds[]

gameVersion, modVersion
The build that asks for the name.
kind
type, member, field, harmony-target, library-type, library-member, library-field, read or shape-coupled.
symbol
The name.
outcome
applied, refused, stood-down or none, as the newest Polyfill said.
why
Polyfill's own sentence, when it sent one.
judged
A ruling somebody already made about this name, when there is one.
reports
How many reports carried it.
wasAlso
Outcomes earlier reports gave it.

A shape-coupled finding is a note about a cloned game screen. It never counts as missing.

history[]

gameVersion, modVersion
The build.
polyfillVersion
The release that judged it. Empty for reports older than 0.10.1.
verdict
After the index rule.
reports
How many reports said so.
moved
How many of them arrived as blocked and were moved by the index rule. Absent when none.
firstSeen
ISO 8601, UTC.

errors[]

kind
The exception type.
frame
The mod's own innermost frame. Empty when none was on the stack.
site
Where it was thrown, whoever owns that code.
path
The call path through the mod, innermost first.
thrown, sessions
How often, and in how many sessions.
modVersions, gameVersions
Where it was seen.
lastSeen
ISO 8601, UTC.

The message of an exception is never collected, so it is not here either.

playerReports[]

id
The report's own id.
at
ISO 8601, UTC.
gameVersion, modVersion, polyfillVersion
Read from the player's log. polyfillVersion is empty when the log lists none.
text
What the player wrote, up to 500 characters, links removed.
errors[]
kind, frame, site and count as in errors[], plus origin (own, handler or other) and other, the root namespace of the other mod.
counts
true when at least one error has the origin own.

A report with counts is one more session in errorSessions of the entry with the same gameVersion and modVersion. The errors of every report are also folded into the mod's errors[].

The log itself is read in the player's browser and never sent.

History as CSV

GET https://polyfill.doomods.com/api/board/<slug>/history.csv

The rows of the folded table on the mod's page. Columns: game_version, mod_version, polyfill_version, verdict, reports, moved_by_index_rule, first_seen.

The whole board

GET https://polyfill.doomods.com/api/board?version=<game version>

One row per mod on one game version, with slug, verdict, play, tally and sessions. Without version it answers for the newest.

Badge

GET https://polyfill.doomods.com/badge/<slug>.svg

The answer chip of the mod's page as an image. It follows the newest game version; ?game=0.4.6f13 pins it to one. The snippets for Markdown and BBCode are on every mod's page under "For your mod page".

The same badge is a PNG at /badge/<slug>.png, for a page that shows no SVG. The BBCode snippet uses it.

A mod the index does not list yet gets a grey badge that says "not listed", so the address can go on a page before the first report arrives.

Limits

  • JSON and CSV may be a minute old, a badge five.
  • Any origin may read, so a browser can call it from your own site.
  • There is no write access. Reports come from Polyfill itself, and from the form on a mod's page.

Missing a field? Write to me here. How the answers are made is on How this works.