MetronInfo V1.2
Following up on the v1.1 release from July,
MetronInfo v1.2
is out. This release is focused on the Series element, adding three new optional elements and loosening the
restrictions on language codes.
Following up on the v1.1 release from July,
MetronInfo v1.2
is out. This release is focused on the Series element, adding three new optional elements and loosening the
restrictions on language codes.
Over the last week I've received quite a few e-mails from app developers, comic shops, and other businesses that want to use the Metron API in their products. Most of them ask the same questions: whether commercial use is allowed, whether one account can serve many users, how to handle attribution, and what the situation is with cover images. Here are the answers in one place.
Up to now, the only way to authenticate against the Metron API was HTTP Basic Auth with your account username and password — meaning every script or third-party tool you connected got a copy of your actual login credentials. Today that changes: you can now generate revocable API tokens and use them instead, without giving up Basic Auth.
A quick follow-up to the v1.0 announcement from two years ago: MetronInfo v1.1 is out, adding two new optional elements that came out of feedback since the initial release.
Back when we added Open Collective support in December 2024, I mentioned that a paid tier for a higher API rate limit wasn't something I was planning on — but that it might be worth revisiting someday if there was enough demand. Then in March we had to cut the daily limit from 10,000 to 5,000 requests due to server load, with a promise to look at restoring it if donations picked up. Well, someday is here: donors to the project now automatically get an elevated daily API rate limit, no paid subscription plan required — just a donation through Open Collective.
As mentioned in our February 2026 update, we have been dealing with increased server load due to the growth in API usage. We have made the decision to reduce the API rate limits effective immediately.
The new limits are:
We know this is not ideal, and we're sorry for any inconvenience this may cause. If we receive enough donations in the future to cover the cost of a server upgrade, we would look at restoring the daily limit back to 10,000 requests per day.
New releases of our client libraries have been published that reflect these updated rate limits:
If you use either of these tools, we recommend upgrading to the latest version.
If you have written software that directly consumes the Metron API, please ensure your code correctly handles HTTP 429 (Too Many Requests) responses. When this status code is returned, the response will include a Retry-After header indicating how many seconds to wait before retrying. Your application should respect this header and delay its next request accordingly, rather than continuing to hammer the server. Failing to handle this gracefully may result in your requests being blocked.
If you have any questions or suggestions, don't hesitate to e-mail me or ping me on Matrix.
During February the Metron Project added the following to its database:
Thanks to everyone that contributed!
Over the last 6 months, API usage has seen a significant increase — which is great! However, we are now at a point where our current server capacity is being strained.
Jonas Stendahl and I have landed some optimizations in the site's code, but they only go so far in relieving the pressure.
That leaves us with two options:
Option #1 is clearly preferable, but we currently don't receive enough donations to cover the extra cost. That means we will likely need to reduce the daily rate-limit in the very near future, and we'll post an announcement here when that happens.
If you have other ideas or suggestions, please reach out!
Several changes were made to improve API and database query performance.
select_related and prefetch_related.order_by() to SeriesViewSet and the publisher series-list action to resolve a UnorderedObjectListWarning that could surface during pagination.ETag and Last-Modified headers. Clients can send If-None-Match or If-Modified-Since headers to avoid re-downloading unchanged data, saving bandwidth. (jyggen)read_dates data, giving API consumers access to reading history information directly from the list view.The following changes made to Mokkari, the Python wrapper for the Metron API, over the past month:
if_modified_since parameter to detail endpointsAll the detail methods (arc, character, creator, imprint, issue, publisher, series, team, universe, reading_list, and collection) now accept an optional if_modified_since datetime parameter. When provided, the request includes an If-Modified-Since HTTP header (formatted per RFC 7231) and returns None on a 304 Not Modified response — useful for efficiently detecting whether a resource has changed since you last fetched it. Naive datetimes are treated as UTC, and non-UTC datetimes are automatically converted before the header is sent.
CollectionList schemaThe collection schemas have been updated to match the latest Metron API:
ReadDate model was added with id, read_date, and created_on fields.read_dates and read_count fields were added to CollectionList and CollectionRead.date_read field type in CollectionRead was changed from date to datetime to align with the API's date-time format.The rate-limiting implementation was updated for the breaking changes in pyrate-limiter 4.0:
BucketFullException and LimiterDelayException imports.Limiter construction._check_rate_limit() to use the boolean return value of try_acquire(blocking=False) instead of catching exceptions.Here's a roundup of changes shipped to Desaad over the past month.
The import_reading_status management command was upgraded: it now imports reading history dates from Metron, not just reading status. A new
ReadDate model was added to store the actual date an issue was read, and the UserStatsView was updated to use these dates for reading activity stats. Previously, stats reflected the import timestamp rather than when issues were actually read.
The comic importer was tightened up to require an external ID when creating characters, teams, universes, arcs, locations, genres, and creators. Previously, the importer would fall back to name-based lookups and create records without a verified external ID, leading to potential unverified duplicates. This change simplifies the importer significantly and ensures all entities can be reliably matched against a metadata source.
The comic reader's Prev Issue, Next Issue, and Close buttons now require a double-tap to activate. On the first tap, the button turns yellow and prompts "Tap again"; a second tap within 2 seconds proceeds with navigation. Otherwise, the button resets. This prevents accidental navigation away from your current reading position.
DB_* variables were also documented in the README.A huge thank you to everyone who has contributed to our Open Collective! Your support makes a real difference in keeping the Metron Project running and growing.
Funds from Open Collective go directly toward:
All expenses are transparent and publicly viewable on our Open Collective page, so you can see exactly where every dollar goes.
If you'd like to help keep the lights on and support continued development, contributions of any size are appreciated and help ensure Metron remains a free resource for the comic book community.
Anyway, that's everything for this month! Take care.
During January the Metron Project added the following to its database:
Thanks to everyone that contributed!
Scrobble API Support
A new /scrobble endpoint allows users to quickly mark issues as read via the API with optional rating and timestamp. This enables integration with third-party reading apps and automated tracking workflows. The date_read field was migrated from a date to datetime for more precise tracking.
Reading History
Users can now view their reading history in a timeline layout with daily grouping. Recent reading activity also appears on user profile pages.
Multiple Read Dates
Collection items now support tracking multiple read dates, since comic issues are often re-read over time. The UI includes HTMX-powered controls for adding and removing read dates directly from the detail page.
Community View
User profiles now use username-based URLs (/accounts/username/) instead of numeric IDs. A new user list view with search functionality was added, making it easier to find and view other community members.