Public Development API

Planned

Comments

76 comments

  • Avatar
    Ory Walker

    That's unfortunate but not unsurprising given WOTCs penchant for being difficult about everything. All you have to do is look at  how they handle their MtG IP. 

    Oh well, it'll be done when it's done I guess. Still a shame that it's taken this long, but at least now I know to aim my disappointment at WOTC. 

    0
    Comment actions Permalink
  • Avatar
    James

    So I lack the skills to do this but I it might be possible if you understand the code they use. Avrae is open source and shows their methods of pulling data from DDB. You could possibly replicate or piggy back off of that?

    0
    Comment actions Permalink
  • Avatar
    Matt Dekok

    James the D&D Beyond API that Avrae uses requires information (such as an API key) that are not present in the Github repository. They are stored in hidden environment variables.

    https://github.com/avrae/avrae/blob/master/utils/config.py

    1
    Comment actions Permalink
  • Avatar
    James

    I guess my question then is how did they get that information originally? I was under the impression they had kind of reverse engineered it previously.

    1
    Comment actions Permalink
  • Avatar
    Leighpierce90

    Dndbeyond owns avrae, so that’s how the integrations work.

    0
    Comment actions Permalink
  • Avatar
    Jonathan Schenker

    +1 For an API, even if it was just to access your own character data once authenticated using your own key. Being able to have plugins that allow for things like item management would be fantastic.

    0
    Comment actions Permalink
  • Avatar
    Thomas Ech

    Also popping in to say I have an interest in this.

    0
    Comment actions Permalink
  • Avatar
    Andrew Obrigewitsch

    So as was stated, because Wizards of the Coast or rather Hasbo doesn't understand technology and they are blocking an API through the use of legal contractual control. Hasbro is constantly tripping over their own feet and doing their best to slow down the expansion of the RPG industry. They are still trying to operate as if D&D just publishes books and the internet doesn't even really exist.  

    I'm working on a project to bring tech to the RPG industry. I'm a senior full stack developer working with React, TS, Node, GraphQL, Docker and AWS. I have many ideas, but unfortunately limited time. I am happy to work with and even mentor others with the same interest. My project is just getting started is gaining some traction, but the more on board the faster it can move forward. 

     

    4
    Comment actions Permalink
  • Avatar
    Richard B Way

    With the announcement today the Privateer Press is releasing the newest version of Iron Kingdoms RPG on the 5e system, I'm really hoping the API moves forward. With the number of races and classes they are adding, being able to develop a solution to managing characters with data specific to them while integrating with the core DND beyond features (through the user's registered account) could be a great way to get folks exposed to both DND beyond and IKRPG!

    0
    Comment actions Permalink
  • Avatar
    Ross Kilgariff

    This would be awesome. It would add a lot of flexibility to heavily customised campaigns.

    1
    Comment actions Permalink
  • Avatar
    Taurolyon

    Please prioritize this. It would be helpful to developers looking to create converters from DDB to the many VTTs out there.

    0
    Comment actions Permalink
  • Avatar
    Timothy Morris

    I really want this. I want to be able to make tools catered to my own campaigns that aggregate player inventory info, passives, etc, in convenient custom pages.

     

    It'd also allow me to make tools to give players items with custom tools that only take a couple of clicks rather than pausing the game to go through D&D Beyond's full interface.

    0
    Comment actions Permalink
  • Avatar
    Richard B Way

    Listening to one of the dev talks about setting up shops got me thinking on this one again. How cool would it be to let DMs set up a couple of shops by setting some general parameters about the size/availability/age/race/attitude/etc... of the shop and shop keeper, and dynamically create an interactive experience for the players where the shop looks at their character for characteristics/equipment to create unique bartering opportunities. 

    An orc walking into an old dwarf's shop - everything costs double. 

    An elf with regal cloths and connections window shopping at a clothier? Everything is on sale, tell your friends!

    A halfling rogue in a jewelry shop? The security guard follows you around. 

    A talkative human with high charisma engaging a street merchant? Excellent haggling commences! 

    I could whip up an MVP over the weekend if I could access the player, campaign, and equipment details from DNDBeyond through an API! 

    1
    Comment actions Permalink
  • Avatar
    Andrew Obrigewitsch

    So I’m seriously interested in building something, does anyone want to work on it with me?

    0
    Comment actions Permalink
  • Avatar
    James

    So in theory Avrae has full access to everything you have access to and you can set up your own Avrae server.
    So if you can set up your own Avrae server and you can set up something like that with full access then it has access to all of it just because there’s an interface that uses a bot for discord doesn’t mean that you can’t access that data in other ways from that server. There may be limitations but anything that Avrae can display the server should have access to and be able to display and then on top of that discord itself has a whole set of APIs for adding things into it such as buttons and special uses and things like that so either of those are a pretty direct way to access the DNDBeyond content without a public API. This of course is all Theory without really looking into the model of either Avrae or Discord I’m not sure what artificial limits have been put in place.

    1
    Comment actions Permalink
  • Avatar
    Shawn Tabai

    I'm no longer using it, but I created a hacky way to access my D&D Beyond content from my own tool. I made a Chrome Extension that exposes a JS interface to my web app, which essentially looks up the page I want from D&D Beyond and then examines it to find the desired data (much like what a human does when viewing a web site, it just does it for you quickly and then translates it into JSON data). So it's not a great way to provide an API, and it's not stable, and it only has the features I needed, and I wouldn't recommend using it for any public product, but it does allow your web app to do things like dndBeyond.searchMonsters('orc').then(displayTypesOfOrcs); and get structured JSON data out of it.

    If anyone is interested in playing with it, I can put it in a public GitHub repo. Note: it is NOT universal, and you would be expected to fork it and make your own. In order for your website to be able to interface with the Chrome extension, its URL needs to be specified in the extension's externally_connectable manifest. You could technically make the extension accessible to every site, but that would be a very very bad idea. It's best to make your own version for your app.

    3
    Comment actions Permalink
  • Avatar
    Janusz Kamieński

    Actually, it looks like there's no API key to connect. avrae-service code shows that it is connecting directly to the MongoDB - probably the one they use for the D&D Beyond as well. 

    Shawn Tabai - any input here may be helpful to people. I was thinking of creating an extension as well, so it may be a good point to start for me. Please share your code, so we can fork :) 

    0
    Comment actions Permalink
  • Avatar
    jastreich

    I also tried what Shawn Tabai did, but took it a step beyond by making the same requests that DNDBeyond's ajax scripts call from the chrome extension.  I didn't continue down the path because it technically violates the TOS and the files they make calls to could change because it requires the extension and not being a public API could change at any moment without warn

    The thing I want to write, or DNDBeyond to add is content management. A way to store the contients, the nations on the continents, the towns in those nations, the shops and people and other places in those towns, and then the offerings of the various shops.  I currently have a very long DM Notes (private) in my campaign.

    While I COULD just write those notes in Google Docs or the like (and did previously), the problem because not having the nice hover previews, and having to jump back and forth between tabs and such. Having it open during the game means I can add new people/places during the game -- but even there DNDBeyond's campaign notes falls apart because the [magicItem] and [spell] aren't active while editing, and switching to/from editing scrolls to the top because it is just a normal link and normal form element.

    So, I'm very tempted to make a local app in nodejs and compile with electron to get around CORS, or to just to make a web app that requires a chrome extension.  The things stoping me are the TOS and possibility of constant breaking change from DNDBeyond.  (And the other projects I'm working on, that if I weren't I might not let the other two bother me).

    Sorry rant over.

    1
    Comment actions Permalink
  • Avatar
    Dömötör Péter

    jastreich

    I would suggest tryingout world anvil. I know a lot of youtubers are pusing it but it is actually preaty good. It has exactly that functionality of storing continents and cities etc. Give it a try. 

    The obvious reason they are not releasing an API is because of WoC. If they had an API one could just buy all the content and use some easy api calls to get everything... The API that I want to see is only for the character stats, so one could make a table top simulator where they just link in the character and it shows the HP and all that.

    0
    Comment actions Permalink
  • Avatar
    Janusz Kamieński

    jastreich - can you point out exact part of TOS you are referring to? 

    My idea was to let people who actually own the content, be able to quickly move content and convert it for some other apps instead of stupid copy-paste between two browser windows. That's what I have to do currently lots of time and is pretty frustrating. I see no point of having D&D Beyond content (that btw multiplies my expenses for books) when I wouldn't be able to use it for quick copying and adjusting for my - DM's - needs. Ranting a little as well, sorry ;) 

    0
    Comment actions Permalink
  • Avatar
    Shawn Tabai

    Here is a GitHub repo with what I did:

    https://github.com/shawntabai/dndbeyond-api-extension

    I've tried to make it very clear that this is a bad idea for a number of reasons, including those that jastreich said (and, in fact, his idea uses a much better paradigm than mine, though both solutions are pretty unstable).

    Janusz Kamieński I think the key point is that you don't, in fact, own the content; you've licensed it. :) The same would probably be true with buying a physical source book; making photo copies of the pages is probably prohibited, even if it's just so that you can use it for your DM screen.

    With regard to this being against the ToS, it specifically prohibits the following:

    "Use any robot, spider, site search and/or retrieval application, or other device to scrape, extract, retrieve or index any portion of the content;"

    This is one of the many reasons why I've stated that any such solutions are a bad idea, and I'm no longer even using mine. However, because there is no real API to use all of the content you paid for in your own tools, this situation is incredibly annoying. Preventing the evolution of an ecosystem is generally a hard thing to do... "life, uh, finds a way".

    2
    Comment actions Permalink
  • Avatar
    Dömötör Péter

    I don't think we will erver get an API that will let us actually move to a different platform the content we payed for... That is simply not a viable buisness strategy, even putting asside the fact that WoC is really strict about the content. The way it works is that DDB payes WoC for the license and than we pay DDB for the sub license... So they can't allow us to basically export a perfectly structured dataset, as that would for sure violate the contract they have and be a huge money loss.

    The best API we cna hope for is one where they only expose the data needed for a table top system, and some plugins already exist for that where they read the HP and some other stats (contitions i think) and put them into a TTS.

    -1
    Comment actions Permalink
  • Avatar
    Andrew Obrigewitsch

    Unless something drastically changes DNDBEYOND is not creating an API, even though it makes sense for us tech people WOT will not let them. So if have an idea to get content in an API so you can directly import this data into VTTs and or whatever you want. But I’m looking for folks to work with me on this project.

    0
    Comment actions Permalink
  • Avatar
    Ory Walker

    Such a shame that this is the way things have developed. I'll be cancelling my DM sub. I just can't justify subscribing to content that I can't then use with my own tools. Whats the point of having access to content if the interface is so garbage that it makes it a hassle to use?

    -1
    Comment actions Permalink
  • Avatar
    Shawn Tabai

    Dömötör Péter There is a lot to be said for the business strategy of a platform/ecosystem vs a standalone product. WotC seems to see it the way you do, but providing integrations into other tools comes with a lot of opportunities to capitalize (e.g. charging for API quota, advertising tools in their ecosystem, taking a cut of all purchases). The risk of allowing data services is minimal; it's trivial to already do this with web scraping (as my code shows), and any real business would be incredibly foolish to risk their livelihood by violating the API's terms. I believe they're hurting their platform by force-feeding their product, and it really is a shame.

    1
    Comment actions Permalink
  • Avatar
    Andrew Obrigewitsch

    Shawn Tabai, I am of the same mindset. An API would allow others to make tools they aren’t even thinking about. WTC and most publishers are still very much in the 90s with their thought process. So let’s make an API for the SRD and get third party content on it. If it’s successful WTC will have to jump on board.

    1
    Comment actions Permalink
  • Avatar
    Nick Lowe

    There's already multiple API for the SRD. https://www.dnd5eapi.co/ and https://open5e.com/ are the most popular. open5e also includes some 3rd party OGL content.

    The main benefit to a dndbeyond API would be to allow people to access 1st party content that they paid for on dndbeyond. I made software for campaign management and this kind of API would be huge for my platform since I wouldn't have to force people to buy a 2nd (or 3rd) copy of their source or adventure books to get full use of the software.

    I'd also love to back and forth update character sheets, that would be amazing.

    0
    Comment actions Permalink
  • Avatar
    Andrew Obrigewitsch

    There are a lot of different parts involved in creating an API that is well known and used, such as getting enough users to get a critical mass. I’m a Senior Software Engineer and I run a Facebook group for DMs in which I interview different content creators, such as Sandy Petersen and DMDave. I have a plan for this but need a team to help.

    If you Google my name I’m easy to find on social media and I would love to talk to anyone with tech knowledge and an interest in getting more tech in TableTop RPGs.

    0
    Comment actions Permalink
  • Avatar
    Benjamin Miramontes

    Very excited to use this API to link with all the various VTTs out there. If this becomes available, D&D Beyond will basically be the only place I need to go for any D&D source material!

    0
    Comment actions Permalink
  • Avatar
    Andargor

    I do not see this feature on the Trello roadmap.

    1
    Comment actions Permalink

Please sign in to leave a comment.