Forum Thread
  Posts  
Is there a ModDB API? (Forums : Support : Is there a ModDB API?) Locked
Thread Options
Apr 4 2016 Anchor

Is there some kind of API for ModDB so I can get download numbers, etc?

Apr 5 2016 Anchor

Nope, all stats are available per page you visit - API is planned no ETA

Jan 1 2017 Anchor

Any news on this? I would like to use it to check for new updates :)

INtense!
INtense! End Boss
Jan 1 2017 Anchor

No news, interested to hear what you would like to use it for as it is certainly something we'd build depending on demand

--

Scott Reismanis
DBolical | @scottreismanis

Jan 3 2017 Anchor

Some ModDB App would be awesome with all the functionality of the web page like login, writing articles, search for stuff and so on..

Jan 6 2017 Anchor
INtense! wrote:

No news, interested to hear what you would like to use it for as it is certainly something we'd build depending on demand

A way to just get even simple info like the current rank of the mod or the number of downloads (so basically a text version of the buttons) would be appreciated.

INtense!
INtense! End Boss
Jan 7 2017 Anchor

Keep them coming, interested in exploring an API

--

Scott Reismanis
DBolical | @scottreismanis

Jan 30 2017 Anchor

IndieDB API Suggestions and Reasoning

I would use an API to update my sites news articles automatically and maximize each ones potential exposure. I like the interface that IndieDB provides developers for managing and updating their content. You guys really go out of your way to make it easy for indie developers to get a head start on dealing with press, media and public exposure, which most solo or small dev groups are not experts on (we just like to make cool stuff). The interface you've created is a great management dashboard for developers and I thank you for it.

That being said, I don't think it helps to make an impression on potential players for any given game, in fact it may be damaging the impression. We are competing in a market that is already severely over saturated and often times many games will often just get grouped together as all just being a knock off of a popular AAA title. IndieDB's interface can exacerbate this effect because all of the content for every game is presented exactly the same.

According to a study done at Missouri University of Science and Technology, a user will have an initial impression of your web page in 2/10ths of a second and spend only another 2.6 seconds reaffirming that impression. Most of that time is spent less on the actual content of the page and more on aesthetics and presentation (images, colors, formatting, layout etc.). This means we all get very similar impressions on this site no matter how different our products may be. Because of this, every negative impression of one game becomes a subconscious predisposition to have a negative opinion of any games seen on IndieDB in the future.

Math Break

  • IndieDB Total Vistors (Dec 2016): 2.35M [?]
  • Per Day (avg): roughly 75.8K

That means all of our games, even without being seen, are being subconciously lumped together and judged roughly 75,800 times a day. If only 1 in every 1000 visitors has a negative experience, that creates negative impressions at a rate of about:

  • 76 /day
  • 2356 /month
  • 27740 / year

While larger more developed companies could potentially ignore these numbers due to already having an existing player base and a larger advertising budget, they could make or break solo devs and small groups that are just starting out or have limited funding.

The Point

In an overcrowded creative market, branding matters. If I could take all of the power you have built into creating and managing information for indie developers and use IndieDB as an interface to distribute that information automatically across my entire online presence in alignment with my brand, I would in a heartbeat. With an IndieDB API, in association with 3rd party social media libraries, I can easily see that becoming a very useful reality.

Suggested API Calls

The most immediate use of the API would be for updating news articles. I would use this in a similar fashion to wordpress blogs, where I would create an article on IndieDB, and update my website automatically with article previews under a "Recent News" section on the home page. Ideally, there would be an Articles object for both Game and Developer objects to keep company and game specific news seperated and easily updated.

Articles.getList()
-return an array of Article info to display article previews. Reduce transmission bandwidth by excluding content (use seperate call).

Sample Response:

<Articles count="2">
     <Arcticle id="00000" subject="articleA" preview="indiedb.com/img.jpg" link="indiedb.com/article-url" description="summary text"></Article> 
     <Arcticle id="00001" subject="articleA" preview="indiedb.com/img.jpg" link="indiedb.com/article-url" description="summary text"></Article> 
</Articles>

Articles.getContent($articleID)
-returns the content of the specified article id.

Sample Response:

<Article id="00000" subject="Article Name" preview="preview.jpg">
     <Content>
          (Insert HTML Content of Post Here)
     </Content>
</Article>

The next biggest use of the API would be to dynamically update media so that if I upload new images or videos, the pages on my website reflects this immediately. For example, I would upload a new video for my game to the games account, I would also have a div on my site that loads any videos tagged "gameplay" by getting the list of videos through the API, sorting through them by tag and displaying the relevant videos dynamically. The Developer and Game objects should also both support these methods, so they can be independently managed, queried and reduce bandwidth allocation.

getVideoList()

-returns a list of video meta-data

Sample Response:

<Videos>
     <Video id="00000" timestamp="01-30-1712:00:00" tags="gameplay,leveleditor" name="video_a" summary="summary_text"></Video>
     <Video id="00001" timestamp="01-30-1713:00:00" tags="gameplay" name="video_b" summary="summary_text"></Video>
</Videos>

getImageList()

-returns a list of image urls and tags

<Images>
     <Image url="imgA.jpg" timestamp="01-30-1712:00:00" tags="zombie,explosion" name="img_a" summary="summary_text"></Image>
     <Image url="imgA.jpg" timestamp="01-30-1713:00:00" tags="menu,newUI" name="img_b" summary="summary_text"></Image>
</Images>

Making Money Sense

While all of this would be a huge benefit to the individual publishers, it does draw traffic away from IndieDB while still utilizing your resources (database storage, bandwidth, etc.). The question then becomes how do we make it sustainable and worth your time to maintain? My suggestion would be a multi-tiered API subscription. I personally would pay a small monthly fee to give my potential players ad-free and branded access to all my content I would normally have on IndieDB, and I can not be the only one. However, IndieDBs professional identity is more aligned with helping to balance the costs of game development for devs with little to no budget, and straying from that could result in some form of public backlash. Offering limited API access for free in exchange for advertising IndieDB on the clients site is one way to make it worth your while and stay in line with your existing brand identity.

Suggestions:

Free Use:

  • Limited API Calls (enough for smaller publishers to use effectively without paying)
  • IndieDB Advertisements in the corner of media returned by the API
  • Require an IndieDB "API Badge" be displayed on the page before returning content("Powered by IndieDB" with a logo)

Premium Use:

  • Unlimited API Calls
  • No Advertisements
  • No Badge Required

Looking Ahead

In the future I would also add additional API calls or widgets (either way) to integrate the new Press Kit features, comments, and forums. The Comments and Forums integration I believe would help foster community interaction and growth regardless of the source of the impression. For example if someone found my game on IndieDB and left a comment on an article, then someone else stumbled upon my website and saw the same article, my potential players could interact with each other and neither of them have to have ended up in the same place on the internet. The same logic applies to the forums.

The Press Kit is in its own league. Its one of those things newer devs have no idea exists, let alone that they need one. The fact that you now provide an interface for creating and updating one is fantastic. Currently its actually possible to obtain the IndieDB generated press kits by parsing the url its located at and extracting the "inner" or "presskit" divs with an html DOM parser, but an intentional more direct way to obtain it would be nice.

From the above responses it seems theres an interest in statistics as well. My outlined use of the API is for automating content distribution, and statistics are generally more a tool to benefit developers by tracking data. I do encourage those people to elaborate on specifically how they would utilize that information, to give you a better understanding of their intentions and help make it a reality. I do think it would be interesting to have access to that information, but having that on IndieDB works just fine for me right now.

In Conclusion

Theres a big ol' wall-of-text feedback for you. Hope you guys move forward with this. If I can help in any way, please don't hesitate to contact me. I would love to see even just a simple IndieDB API up and running. It can always grow with time.

Thanks for reading this,

-Matt

Edited by: Zedword@Gravemind

INtense!
INtense! End Boss
Jan 31 2017 Anchor

Wow Zedword@Gravemind greatly appreciate your detailed insight here. An API and profile customization is in the forefront of our mind, but... we've still got a super full roadmap with the first being DB Testing (indieDB v5). So while I can say with certainty that it is coming, it will likely be mid to second half of this year. I wish we were faster but we are a small team, and can only do so much.

Plus everything in the interim will hopefully be functionality you also want! Will be going through your feedback piece by piece, and get back to you, but it does match a lot of what we are aiming to do

--

Scott Reismanis
DBolical | @scottreismanis

Jan 31 2017 Anchor

No problem, I appreciate you listening. I hope that was actionable feedback you can use, and back and not just the technical ramblings of a mad man. I actually had to cut it short, believe it or not. I'm developing a new site right now, and I had several ideas fresh in my mind. I googled to see if there was an IndieDB API and I was happy to see that this conversation was being had earlier this month. I hope this thread gets more attention, I'm sure there's a lot more ways an API could be useful.

I completely understand, no rush. I can't wait to see how it all turns out.

-Matt

Nov 30 2017 Anchor

Are Webhooks planned? They would be quite useful for keeping track of mod updates.

INtense!
INtense! End Boss
Nov 30 2017 Anchor

We've got a mod API planned, but for a new unannounced project called Mod.io

--

Scott Reismanis
DBolical | @scottreismanis

Feb 12 2018 Anchor

Interesting. I was thinking of making some sort of Mod Organizer for Doom II (in the veins of Nexus Mod Manager), and I'd be nice to have a clean API to enable downloads and updates of mods, with clear labels for each type (gameplay, maps/levels, weapons, etc).

INtense!
INtense! End Boss
Feb 13 2018 Anchor

Technically mod.io is designed for games to integrate. Not the other way around - so it doesn't quite do what you are after tareksaidinfo but it's possible in future it could be adapted to do that.

--

Scott Reismanis
DBolical | @scottreismanis

Feb 18 2018 Anchor

Are Webhooks planned? They would be quite useful for keeping track of mod updates.

I would love to see that as well. :)

Just wanted to check on this topic and provide some more suggestions/dieas for API calls. :)
Basically what I think would benefit the platform as a whole would be an integration with content planning sites like hootsuite.com in order to make managing their appearance on Moddb easier.

Articles.post()
- Enables to post an article from a remote platform

Media.post()
- Enables to post an image/video from a remote platform

getlatestcomment()
- Enables to call for the latest comments on a page/forum topic/else

Comments.post()
- Enables to react to a comment from a remote platform


--

Project Manager/Project Co-Lead Stargate - Empire at War: Pegasus Chronicles

Moddb / Web / Facebook / Twitter / G+

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.