Tyrannis API Improvements | EVE Online

Tyrannis API Improvements

2010-05-17 - By CCP Stillman


As you might know by now, in Tyrannis we are delivering a vastly improved contacts system and the new calendar. For these features, we will be providing a new set of APIs for you to consume in your own applications. Not only will we expose this new data to you, we have made some changes to existing APIs, and two Outpost related APIs have been added to help ease outpost management.

While EVE Gate is a large step towards bringing EVE to you outside of the client by allowing you to consume contact and calendar information in your own applications, be it desktop, mobile or even more interesting platforms, we hope that you, the community, will adapt this to the needs of the players and shape the proverbial sandbox to your own needs.


The Calendar API consists of two requests, both of which require a full API key:

  • /char/CalendarEventAttendees.xml.aspx?eventID=
    • characterID, characterName, response
  • /char/UpcomingCalendarEvents.xml.aspx
    • eventID, ownerID, ownerName, eventDate, eventTitle, duration, isImportant, response,eventText

By fetching UpcomingCalendarEvents.xml.aspx, a list of all upcoming events is returned (regardless of your response to them, Accepted and Denied alike), as well as your response to the event. If you wish to dig deeper into the attendee list of a specific event, you are able to pass the eventID onto the CalendarEventAttendees.xml.aspx, which will return will the attendee list. Please note: only eventIDs returned by your UpcomingCalendarEvents.xml.aspx call are valid arguments.

In the case of attempting to fetch the attendees of non-personal events, you need to have the "Communications Officer" corporation role.


The Contacts API will require only a full key(EDIT: This was changed from a limited key based on discussion in the discussion thread), and consists of one character-specific request and one request which work for both characters and corporations:

  • /corp/ContactList.xml.aspx
    • corporateContactList
      • contactID, contactName, standing
    • allianceContactList
      • contactID, contactName, standing
  • /char/ContactList.xml.aspx
    • contactID, contactName, inWatchList, standing
  • /char/ContactNotifications.xml.aspx
    • notificationID, senderID, senderName, sentDate, messageData

I want to tie a few notes to the above APIs

  1. Due to the fact that you can only send Contact Notifications to individuals, the ContactList.xml.aspx API is the only of these two calls which will be accessible for both corporations and characters.
  2. Given that alliances are now also able to have contacts, you will also get the full Alliance Contact List when you request your corporation's contact list.
  3. The ContactNotification.xml.aspx call fetches all unread contact notifications from your evemail. So once you read a notification in-game or on EVE Gate, it will disappear from the API.


A new feature of Tyrannis is that you can decide which contact list (corporation or alliance) a POS should adhere to. This means we have to change the schema of the StarbaseDetail.xml.aspx page to reflect this  new attribute of Starbases. The combatSettings tag will now contain an element called "useStandingsFrom", with the ownerID attribute which is either the ID of alliance or corporation, from which standings are derived. Here's what it looks like now:


This new Outpost API will allow you to pull information about the corporation's outposts, which will require a full API key from the a director(or CEO) of the corporation which the outpost belongs to.

  • /corp/OutpostList.xml.aspx
    • stationID, ownerID, stationName, solarSystemID, dockingCostPerShipVolume, officeRentalCost, stationTypeID, reprocessingEfficiency, reprocessingStationTake, standingOwnerID
  • /corp/OutpostServiceDetail.xml.aspx?itemID=
    • stationed, ownerID, serviceName, minStanding, surchargePerBadStanding, discountPerGoodStanding

Two things are important to note here:

  1. Just like in the Starbase API, an ownerID tag is present, which determines the entity which the standings are derived from.
  2. In the OutpostServiceDetail.xml.aspx API, if a service has default values, they will not be shown.


We hope that you will use these new APIs in creative ways. As always, questions and comments are appreciated.