Hacker News new | past | comments | ask | show | jobs | submit login
Marvel Comics API (marvel.com)
197 points by quux on Apr 25, 2014 | hide | past | web | favorite | 62 comments

While having access at all is nice, the terms of use are prohibitive and somewhat heavy handed. They basically say you can make something, but can't charge for it in any way, you can't create a mash-up (no augmentation of data) and if it works out, Marvel will probably implement it for themselves anyway. Not really as 'open' as you might hope.

The following default rules apply to all Apps:

Advertising. No advertising or sponsorship of any kind may appear on or be associated with any App (unless included in the Content made available by Marvel).

No Charge. All Apps must be offered free of charge to download or otherwise access and may not contain any in-App purchase features or any other method of monetization, unless approved in writing by Marvel pursuant to a separate written agreement as described below.


NO PRESS RELEASES. You may not issue any press release or make any public statement about the Marvel API (and related Content), Tools, the inclusion of any of the foregoing in any Apps (yours or others') or these API Terms of Use without Marvel's prior written approval.


Use of our Content. You may not change or edit the Content (e.g., modify, augment).


You understand and acknowledge that Marvel may be independently creating applications, content and other products or services that may be similar to or competitive with your App, and nothing in these API Terms of Use will be construed as restricting or preventing Marvel from creating and fully exploiting such applications, content and other products or services now or in the future, without any obligation to you.

When this conversation came up on Reddit a while back, someone made the same point as you, and I replied (more or less) this back then too:

These terms apply to the free usage of their API.

I have no doubt that if you had a good idea that monetized their API data well, and you wanted to do things not allowed by this default license agreement, you could reach out to them and get a different license that allowed you to charge money and/or do more, probably in exchange for a revenue sharing or something.

Since this is a new(ish) service, they are probably not actively promoting a paid option while they hammer out any bugs or issues in v1 (since the SLA for paying customers is likely more involved).

Obviously this is all speculation, but just because this is the license displayed on the site doesn't mean it's the only license they are prepared to offer.

Unless they have a public price, I'd be wary. When you have to ask for cost, it's usually about 5-6 figures for year of access.

Still, it's a start.

Well, again it probably depends on your idea, and what the potential revenue is.

It's also possible that they have no idea what to charge for their API right now, and they are waiting to see what kinds of offers come in.

That's also smart (or ruthless?) since it allows them to tailor their price to your idea (i.e. maximize their share of the potential revenue).

I hope people figure out cool things to do with this though.

The lower end of that is perfectly in line with what you'd be paying other providers for commercial services.

When you upload, submit, store, send or receive content to or through our Services, you give Google (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content.

That's from Google's TOS [1], which applies to GMail. So Google can, in theory, publicly display your email.

I guess that's my way of saying that I'm much more interested in the fact this API is available for exploration and experimentation and much less interested that it doesn't meet an impossible standard that no one here can actually articulate or provide an example of.

[1]: http://www.google.com/intl/en/policies/terms/

Take into consideration that most APIs don't contain primarily data and information about trademarked characters and copyrighted works. They are going to err on the side of being very cautious when opening up an API full of their popular intellectual property.

This is a very good point. The Marvel universe is a "premium" brand, in it's own way.

I wouldn't be surprised if opening up this API was a non-unanimous decision with lots of internal dissent.

Looking at their docs it seems like it's just IMDB-style metadata for a single publisher.

They never said it was open, so I don't see the problem, unless you readily associate "API" with "open".

I would not have anticipated all of those and I appreciated the heads up. If you're offering an API to the public at large like this, yes, I would default towards assuming it was relatively open barring notice to the contrary. When you make it really easy to start sending requests and bury all the terms in conditions in fine print, that's something of an anti-pattern.

Especially when talking about the kind of API most likely to be used by clever teenagers on a fansite.

I appreciated the PSA.

> or make any public statement about the Marvel API[...]or these API Terms of Use

What, is this an NDA? (If it is, you just broke it. Along with everyone else in this item that says they did something with their API...)

capitalism, get used to it.

For anyone who has enjoyed Timehop, I put together an app I call Marvelhop [1]. It simply picks a random comic that was issued on this week in the past 20 years.

I am surely biased, but it's a pretty fun way to rediscover comics you might have forgotten about.

[1]: http://marvelhop.jit.su/

UPDATE: The code that queries the API (while messy) is entirely written in client-side JQuery, so feel free to view the source.

I hate to be "that guy", but what about turtle4's observation [1] of some TOS items? Seems like your post may be crossing some lines?


NO PRESS RELEASES. You may not issue any press release or make any public statement about the Marvel API (and related Content), Tools, the inclusion of any of the foregoing in any Apps (yours or others') or these API Terms of Use without Marvel's prior written approval.

[1]: https://news.ycombinator.com/item?id=7649077

I'm hoping you're just kidding. Would making a forum post really violate their TOS? I would consider this a "public statement," but I am not a lawyer.

just wanted to say: i love it, cool!

This is really cool, however I found one major flaw that will prevent me from using this: I have a marvel.com account and forgot my password, so I went to "Forgot my Password" to get a new one.

I was emailed with my email and password in plain text, meaning that Marvel stores the passwords in plain text. Knowing that, I'm not sure how comfortable I would be building something on top of this API.

While concerning with regard to their stance on security, you should really assume all web services store their passwords in plaintext. Passwords have always been kept in confidence on the web, without any guarantee of secrecy. Until web standards improve and address this with client side hashing this is an uphill battle, like trying to get people to use prepared queries instead of escaping. Use a password manager with a random per-site generator and just accept it.

I'm currently developing a website, Longboxed (http://www.longboxed.com), that helps users build virtual pull lists, keeping them up to date with the latest releases.

The comic industry needs more of this. There is a wealth of information out there, nearly all of which is user created. Its nice to see Marvel offering this.

I'm very interested in seeing what people make with this. Now let's pester DC, Image, Dark Horse, etc to get on the bandwagon!

Good luck! I traveled that road for a few years with a site called MyPullList (2007-2010, RIP), and had a heck of a time with ... basically all of it. I did have a lot of fun talking about the data model and its challenges during the height of the NoSQL hype, though.

This is a use case we're very excited about. I know longbox.me is using our API as well and is dreading on similar ground.

Looks like they're putting in place infrastructure for an API affiliate plan.

To use the API you must display a copyright link whose href points at a url included in the API's response.

Ignoring the nice boost this gives to Google rank, the urls change based on the request and so can point to a place where the viewer can buy the API response's content from Marvel.

Plus each url includes a tag so Marvel can know which app sent them the customer.

Not sure why they're putting such a powerful linkback/affiliate scheme in the copyright notice though. If they're sending back custom urls it's no extra effort to include call to action text for the link as well eg: Buy 'Avengers: The Quest For Profit'.

More info in the linking section of http://developer.marvel.com/documentation/attribution

I don't know what I'll use this for, but I'm happier knowing it exists.

Don't forget what Disney has done to corrupt copyright law and government: http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act

Amusingly, you basically won the HN lottery on uptake:


I think the difference is that I used the word API in my submissions title, which immediately makes the developer part of my brain say "Comic book API? What's that about?" and want to know more.

How was this reposted so many times? I was sure when I posted it that someone would have beaten me to it and I would be up voting their post.

Maybe a bit off-topic, but the Grand Comics Database (http://www.comics.org) is an fan non-profit effort to index all comic books worldwide. We don't have an API, although we'd like to - it's mostly that we have no clear requirements yet, and since all data is available as a DB dump under CC-BY, there's not much push for one.

The project is now in its 20th year and this shows in that the database schema isn't as canonicalized as could be (for example, creator credits and character fields are just text fields and not DB references. Yet slowly but surely improvements are being made, faster in the last couple of years.

We could use some help if anybody is interested - our code is GPL (https://github.com/GrandComicsDatabase/gcd-django) and since the dev team is limited and everything happens on our free time, all kinds of help are appreciated.

Further links: our wiki: http://docs.comics.org/ our tech mailing list: http://groups.google.com/group/gcd-tech

I built something small to try the API out a couple months ago: http://cesnotseth.com/marvel/ Type in an event to see characters and covers from that event. Click individual characters to see covers throughout their history.

A cool thing about the API is that it returns both normalized and denormalized foreign entities. (E.g if I query a character, it will return a reference to an endpoint to query all that character's comics AND it will return the total number of comics). It saves a lot of time for aggregation.

I used that data a few months ago to create a chart of the most popular Marvel characters: http://i.imgur.com/KVAT3Xn.png

Code for retrieving the data here: https://github.com/minimaxir/all-marvel-comics-characters (I have absolutely no idea if this still works)

Thanks - we tried to make discoverability of related entities easy.

Started hacking on a Go client: https://github.com/ImJasonH/go-marvel/

Feedback/contributions welcome if you feel like it

edit: I might just break down and write a Go client generator for Swagger...

POST v1/public/fanfiction

Needs a crossover endpoint that takes a url (and schema) for another universe's API

I find that the ComicVine API is really good. https://www.comicvine.com/api/

Has both Marvel and DC characters, so that's a huge plus.

So effectively someone could build a marvel wiki entirely off this api.

HOWEVER the geek in me wants to see the "comic graph" and someone map the hell out of all the cross appearances and so forth.

Already exists (2011): http://exposedata.com/marvel/

Back when this was announced, I blogged about it and built a demo. This demo simply finds a random cover over the past 50 years. It updates every - 30 seconds - I think. Anyway, here it is:


And the code: http://www.raymondcamden.com/index.cfm/2014/2/2/Examples-of-...

One would think you could sign up using ones github/bitbucket account. Would probably make it easier for them to showcase what devs have made using the api over time.

Bah. Create your own IP. If you piggyback on the work of others you'll just get taken for a ride.

Good luck spreading the word about your own IP. You'll have to either be that one in a million viral hit, or sink a lot of money into advertising.

Here's a small script to access the Marvel Comics API from F# Interactive using the FSharp.Data JSON Type Provider:


This looks a lot like the Riot Games developer portal. I wonder if they used it as reference.


Anyone know what they're using to generate this page? http://developer.marvel.com/docs

Source of that page seems to point to "Swagger UI":



Fail - to create an account you have to enter a postal code and they limit the length to 5. Just as the limit of a zip code. Canadian postal codes are invalid. :/

This would be pretty nice combined with the Open Gaming System to produce a marvel + d&d mashup. Think dungeon crawls with Iron man

Its nice but strict non commercial license means if you built something cool you would have no way to support it.

would be great if a proper search parameter was provided. Right now you can only search characters by the exact name or 'namestartswith'. It would be nice if the searches had a priority associated with them (Iron man shows up way in the bottom for a search for 'iron')

We get this request a lot and we're evaluating adding it.

The `v1/public` namespace is interesting

That seems to imply there is might be a `v1/private` namespace as well.

what kind of information you can pull? is it possible to pull content of the comics?

Looks like just metadata - characters, series, events - I was just a tad disappointed that event didn't have a "event date" which constituted a date that the event occurred in. Such a date would allow construction of a marvel-verse wide timeline.

Does it have "issue release date"? That's what you'd need to make a timeline that made any sense at all. An in-universe "event date" doesn't really make sense because of the whole sliding timescale thing where continuity makes no sense and we (comic fans) pretend it does.

That link is not telling me a lot

It's just info on the comics, superhero appearances, crossovers. Like someone previously said, just metadata. You can't pull Marvel Universe data like the height of all the X-Men from shortest to tallest or how many planets Galactus has eaten.

I build a node client,never used it,


if anybody has an idea of app he is welcome.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact