API

DDO Audit supports an API for accessing Player and LFM data that may be used for personal and non-commercial applications. By using this data for your own projects you agree to the following conditions:

  • For any application published to the community:
    • Credit for the data should be attributed to "DDO Audit".
    • You should not replicate this project verbatim. Any released tool must differ considerably in form or function.
  • For any application:
    • You may not generate revenue from any application that uses this data. I cannot claim any rights of ownership to this data, and neither can any developer that uses it.
      • The website or application must be free to use.
    • Data may be polled as frequently as 30-second intervals. Exceptions include testing/development purposes and limited-duration cases.

Data acquisition may be performed in the following manner:

  • No validation or keys are required. Anyone can request data whenever they want for whatever reasons they want.
    • I assume this will be a niche tool, and I trust the few that will be using it to abide by the rules.
  • A GET request can be sent to one of the API addresses below.
  • Content-type is application/json.

Available APIs:

The following is a detailed description of the information found in the JSON response of the APIs. If you still have questions or requests for additional data to be included in the API, please message me on Discord as Clemeit#7994, Reddit as Clemeit, or on Twitter @DDOAudit.

/api/players

Server Header

  • Name: The name of the server
  • LastUpdateTime: The time stamp of the last data collection (UTC)
  • Population: The number of players on the server

Player Data

  • Players: An array of Player objects
  • Name: The player's name
  • Gender: The player's gender
  • Race: The player's race
  • TotalLevel: The player's total level, including epic levels
  • Classes: Array of ClassData objects
    • Name: The name of the class
    • Level: The level of the class
  • Location: A LocationData object
    • Name: The location's string name
    • IsPublicSpace: if the location is a public space (e.g. The Harbor, The Marketplace, House Jorasco Enclave) or if the location is a private space or quest (e.g. Jungles of Khyber, The Cogs, Hobgoblin Layer)
    • Region: The region that the location belongs to
  • Guild: The player's guild name
  • InParty: if the player is in a party or if the player is not in a party

Example Classes

  • Example classes in C# using Newtonsoft's JsonConvert DeserializeObject
  • A web client is used to make a simple request to the API's URL

  • Classes for Server, Player, ClassData, and LocationData
  • Server:
    • Players is an array of class Player
  • Player:
    • Classes is an array of ClassData objects
    • Location is a LocationData object

Miscellaneous Information

  • Anonymous players are included but their names have been replaced with "Anonymous".

/api/groups

Server Header

  • Name: The name of the server
  • LastUpdateTime: The time stamp of the last data collection (UTC)
  • GroupCount: Number of groups on the server

Group Data

  • Groups: An array of Group objects
  • Id: A unique group identifier
    • Unsigned 64-bit integer
    • The ID should persist if
      • The group's leadership changes
      • The group loses or gains new members
      • The LFM is taken down but put back up later (assuming that at any point the group had at least two members)
    • The ID may be recycled after the group disbands
  • Comment: The public comment associated with the post
  • Quest: A Quest object
    • if no quest has been selected
    • Name: The name of the quest
    • CR_Heroic: The base level of the heroic version of the quest, or if the quest does not have a heroic version
    • CR_Epic: The base level of the epic version of the quest, or if the quest does not have an epic version
    • Patron: The patron the quest applies to for favor purposes
    • Type: Distinguishes between types of quests
  • QuestName: Deprecated
  • AdventureType: Deprecated
  • Difficulty: The difficulty of the selected quest
    • May contain data even if no quest is selected
  • AcceptedClasses: An array of accepted classes
    • The array is empty if all classes are accepted
  • AcceptedCount: The number of accepted classes
    • An integer between 1 and 15 (15 is any class)
  • MinimumLevel: Minimum level accepted
  • MaximumLevel: Maximum level accepted
  • AdventureActive: The number of minutes the adventure has been active
    • Defaults to 0 if the quest has not been started or if no quest is selected

Leader Data

  • Leader: A Player object containing the party leader's information
  • Name: The leader's name
  • Gender: The leader's gender
  • Race: The leader's race
  • TotalLevel: The leader's total level, including epic levels
  • Classes: Array of ClassData objects
    • Name: The name of the class
    • Level: The level of the class
  • Location: A LocationData object
    • Name: The location's string name
    • IsPublicSpace: if the location is a public space (e.g. The Harbor, The Marketplace, House Jorasco Enclave) or if the location is a private space or quest (e.g. Jungles of Khyber, The Cogs, Hobgoblin Layer)

Group Data

  • Members: An array of Player objects containing the information of the group's members, excluding the leader
  • Name: The member's name
  • Gender: The member's gender
    • or if the player is anonymous
  • Race: The member's race
  • TotalLevel: The member's total level, including epic levels
  • Classes: Array of ClassData objects
    • Name: The name of the class
    • Level: The level of the class
  • Location: A LocationData object
    • Name: The location's string name
    • IsPublicSpace: if the location is a public space (e.g. The Harbor, The Marketplace, House Jorasco Enclave) or if the location is a private space or quest (e.g. Jungles of Khyber, The Cogs, Hobgoblin Layer)

Example Classes

  • Example classes in C# using Newtonsoft's JsonConvert DeserializeObject
  • A web client is used to make a simple request to the API's URL

  • Classes for Server, Group, Quest, Player, ClassData, and LocationData
  • Server:
    • Groups is an array of class Group
  • Group:
    • Id must be an unsigned 64-bit integer
    • Leader is a Player class and Members is an array of Player
  • Quest:
    • Both CR_Heroic and CR_Epic must be nullable. If a quest doesn't have a heroic version, CR_Heroic will be null. If a quest doesn't have an epic version, CR_Epic will be null
  • Player:
    • Classes is an array of ClassData objects
    • Location is a LocationData object

Miscellaneous Information

  • Groups are sorted by minimum accepted level, descending.
  • Groups with no party leader or members (commonly known as "broken LFMs") have already been filtered out of the report data.
  • Anonymous players are included but their names have been replaced with "Anonymous".

Change Log

August 12, 2020 - Players

  • Added: Player API

May 22, 2020 - Implementation

  • Initial implementation of the API