Servers aren't free, and neither is bandwidth. Here are some guidelines we'd like you to follow.
Please don't query the entire database. Only query data as you need it, and cache that data locally.
(If you have a use case that requires offline access to all the data, get in touch. We can just send you a file.)
Every request you get from the database will contain a X-Cache-Revision header. The value is a nonnegative integer. Store the most recent value you've seen.
Any time something changes anywhere on the database, the cache revision (which is the same for all files!) increments by one.
To find out what changed, request /manifest/<revision>, where <revision> is the last known value of X-Cache-Revision. The server will respond with a JSON object that contains all paths that changed since the revision you specified. Invalidate those paths from your cache, and re-request them once necessary.
Yes, we realize this is the section you've immediately skipped to. Now please go back and read the previous two sections.
We reserve the right to take measures if your bad code starts to slow down our servers.
With that out of the way - these are the paths you'll want to request. All IDs are Konami's database IDs, and all paths request JSON objects.
- Card & FAQ data: /data/card/<id>
- Q&A data: /data/qa/<id>
- Card localization metadata: /data/meta/auto and /data/meta/mprop
- Search indices:
- Card name -> card ID: /data/idx/card/name/<en|ja|de|fr|it|es|pt|ko>
- Print code -> card ID: /data/meta/index/printcode
- Q&A tag -> Q&A ID: /data/idx/qa/tags
- Recent Q&A entries: /data/meta/recent/<en|ja>/qa
Trouble using the API? The documentation seems to be outdated? We're just human, too!
Let us know - you can find our Discord server here.