Home

Welcome to the Third-Party Developer(s) Documentation for EVE Online.

This is a new community supported repository for instructions and guidance that is useful for those making third-party tools for EVE.

It is intended to always be a living document, and the plan is for it to be frequently updated to reflect changes in the APIs and/or services.

Deprecation notice

As of this blog post made on November 18th, 2016 it was announced that CCP’s newest API – ESI – was going to replace the XML API and CREST. It was also announced that CREST and XML API are going to be shut down by May 8th, 2018, or earlier if metrics signal a trivial level of usage. This means three things:

  1. If you have never developed against an EVE Online API before and you are looking at creating a new tool/app based around EVE, Do not use CREST or XML API. Please use ESI.
  2. If you have tools/apps made against XML API or CREST then you will need to migrate to ESI before May 8th, 2018.
  3. If the XML API or CREST’s traffic dwindles to trivial usage they will be shut down earlier than May 8th, 2018.

Contributing

There is a lot of work to be done on this site and any contributions are welcome. The docs are hosted on a GitHub repository, where anyone can fork it, commit changes and submit a pull request to get your changes onto the site.

The source files are written in markdown, which is very easy to get started using. There is a fairly good introduction to markdown available from GitHub.

Please follow the recommonmark guidelines for math formulas and inline math.

There is a contributors file, as well as more info on contributing to the documentation on the repository.

ESI (EVE Swagger Interface)

The ESI API is the official RESTful API for EVE third party development. It leverages Swagger so that documentation about the API is always up to date and not dependant on documentation websites like this one. You can find all the endpoints and try them out at https://esi.tech.ccp.is/latest/.

Fundamentals

Multi-tenant to the core

ESI was designed to be a single interface to all information EVE related. As such, if ESI and the cluster agree on configuration, you can change the datasource query parameter on any route (including //swagger.json) to the server name of your choice.

You will see this in the ESI UI as a select menu in the header/nav bar, and in the datasource enum in the spec itself.

There are actually three ESI environments running, an esi-dev, esi-test, and the production esi. With esi-dev or esi-test and a bit of configuration (which will be replaced with tooling), EVE developers can actually query their local development server through ESI.

Authentication

Auth is still handled by SSO. There are new scopes which ESI uses, you can make new developer keys (or alter your existing) to make use of the new scopes. If an ESI endpoint requires authentication, you will see a red exclamation mark on the route description in the Swagger UI. Mouse hovering over this icon will tell you what scope the endpoint requires.

ESI handles redirecting your authentication header to the correct SSO for verification (depending on the datasource query string argument). SSO is not multi-tenant though, so you will need to create app keys on each SSO backend you intend to use.

Versioning

ESI itself has an API version (as defined in the spec). That version number is mostly irrelevant to API consumers (it’s the version of ESI-lib). Instead, ESI versions each route individually. This allows us to make much faster changes and avoid the awkward situation of global API versioning.

As an example, let’s say you have a route /v1/hello/<string>/, and you want to change the path parameter to accepting an integer instead. With a traditional API, the entire APIs basePath would have to be bumped. This is obviously a little less than ideal, considering there could be hundreds of other unchanged routes.

With ESI, you always (and only) get three complete APIs, /dev/, /latest/ and /legacy/. But each route is also given a numbered path, starting with /v1/. Alternate routes are mentioned in the route description (until something better comes along in the standards?).

/dev/ can change at any point, changes to /latest/ will be announced. After changes are made the previous /latest/ will be available as /legacy/, until the next version bump. If you want to avoid the return schema of your request suddenly changing, you can use the versioned alternate route. In that case, prudent developers may want to create unit tests (watch for the warning: 199 headers) to notify them when endpoints are moved to legacy.

Additionally, endpoints may be deprecated. When an endpoint is deprecated, a line appears through it on the Swagger UI, and it begins returning the “warning: 299” header. This is slightly different than a warning: 199 header, which you will receive if an endpoint was updated and there is now a newer version of it available. Deprecation is how Tech Co broadcasts an intent to delete a route. Deprecated endpoints may include a recommended alternate source or other message in the 299 warning, and you should move away from them immediately.

Because endpoints are versioned individually, the concept of an overall /v1/ (or 2 or 5) API is not very relevant, and no swagger-ui is provided for these routes. Browsing the API’s capabilities should be done via /dev/, /latest/ or /legacy/. However, users who wish to indulge their curiosity may feed a /v1/swagger.json into their own Swagger UI to get an overview, if they wish.

As an aside, all ESI routes end with a /. The only exceptions are the /<version>/swagger.json routes and routes used by the swagger-ui, which are passed through ESI.

Rate limiting

There are no rate limits in place, ESI relies on caching more than rate limiting.

ESI returns standard caching headers if the data is cached. Applications should notice and make use of these headers (expires and last-modified) on routes where they are provided.

ESI is a shared resource and projects should be optimized to have minimum consumption of unnecessary resources. In the case of long running services, consistent amounts of slow traffic are preferred to spiky, high throughput traffic.

Important Online Resources

The following is a list of important online resources for ESI development.

Guidelines and References

Developer License

All use of authenticated ESI is subject to the terms of the Developer License.

To use authenticated ESI, you will need to enable your account on the developer site. You must have paid for eve at some point in the past and you will need to agree to the Developer License.

Licensing FAQs
  1. Can I charge people real life money for my application? A) No.
  2. Can I charge people ISK (the in-game currency) for access to my application? A) Yes.
  3. Can I generate revenue via ads in my application? A) Yes, however you must follow CCP’s guidelines for monetization of videos
  4. Am I allowed to collect donations from users of my application? A) Yes, as long as they are purely voluntary. “Donations” may not be mandatory, and you cannot require a donation to unlock premium access or special items.

Guidelines

  1. If you want to do something and have to ask “I know this is bad but maybe they will let me do it anyways.” Just don’t do it.
  2. Provide a good User-Agent header.

Single Sign-On (SSO)

Introduction

What is the SSO

Simply put, SSOs are a way for users to log into one web site using their username and password from another web site. For example, if go to https://www.goodreads.com/ and try to sign in they will ask you if you want to sign in with Facebook, Twitter, Google, or even Amazon. For Goodreads this is great because it means they don’t have to worry about trying to manage your username and password information. It also has the nice advantage of making it a lot easier for you as a user to sign into their site as you don’t need to register or keep track of multiple extra account names and passwords.

For EVE Online, the SSO means that you can sign into a web site that has integrated the EVE SSO and confirm you are a specific character. While signing into a site you will be asked which character you wish to authenticate with and the web site that let you sign in with the EVE SSO will get confirmation from CCP that you own that character. The original web site will only ever get your character, they never see your account name or password. The original web site will not know what account that character is on or have any way, from us at least, of linking that character to any other character on the same account.

Registering for the SSO

To use the SSO in your app, you must first register it at the developers site. When you create a new application here it will give you a client ID and secret key, which are used in the authentication flow.

You are required to supply the following:

  • Name: Name of the application, will be displayed to the users when asked to authorize your app.
  • Description: Description of the application, will be listed under your app in Third Party Applications.
  • Connection type: Can be API Access or Authentication Only. If API Access is selected, you will also need to select the scopes your app will use.
  • Callback URL: Callback URL, which is the only location the login server will redirect back to after the user has authorized the login (See Authentication flow for details.)
Errors

Please note:

If too many HTTP requests are done to an SSO endpoint within a set time interval the SSO will return a HTTP 409 response (being vague on the number of requests and time on purpose as we will be tuning these values).

Test Server

All instances of https://login.eveonline.com can be swapped for https://sisilogin.testeveonline.com when trying to use Sisi.

Login Images

When creating a button to direct users to login to your site or application with the EVE SSO please use one of the following images for the button. This helps create consistency for EVE players and when they view your site or application will more easily be able to quickly identify that it supports the EVE SSO.

EVE SSO Login Buttons Large White EVE SSO Login Buttons Large Black EVE SSO Login Buttons Small White EVE SSO Login Buttons Small Black

Authentication Flow

Implementing the SSO

The recommended flow for web applications where the client secret can be stored on a server is the Authorization Code Grant documented here.

For those that don’t feel like reading the standard, the authentication is really just a series of HTTP requests and redirects described in this document.

Redirect to the SSO

When a user clicks the login button on your website you need to redirect the user to https://login.eveonline.com/oauth/authorize with the following query string parameters:

  • response_type: Must be set to “code”.
  • redirect_uri: After authentication the user will be redirected to this URL on your website. It must match the definition on file in the developers site.
  • client_id: A string identifier for the client, provided by CCP.
  • scope: The requested scopes as a space delimited string.
  • state: An opaque value used by the client to maintain state between the request and callback. The SSO includes this value when redirecting back to the 3rd party website. While not required, it is important to use this for security reasons. http://www.thread-safe.com/2014/05/the-correct-use-of-state-parameter-in.html explains why the state parameter is needed.

Example URL: https://login.eveonline.com/oauth/authorize/?response_type=code&redirect_uri=https%3A%2F%2F3rdpartysite.com%2Fcallback&client_id=3rdpartyClientId&scope=characterContactsRead%20characterContactsWrite&state=uniquestate123

The user will need to log into their EVE Online account and select the character that your web site will be given access to. If the user is already logged in with an EVE Online account, they will just need to select a character and approve the required scopes.

The SSO will redirect the user back to the provided callback URL with an authorization code and the state as query string parameters.

Example URL: https://3rdpartysite.com/callback?code=gEyuYF_rf...ofM0&state=uniquestate123

  • code: The Authorization code.
  • state: The state parameter that was sent in the original request to the SSO.
Verify the authorization code

At this point your website has the authorization code. The only thing the authorization code is good for is to obtain an access token.

It is also important to note that the authorization code is single use only.

You need to make a POST request to https://login.eveonline.com/oauth/token to exchange the authorization code for an access token. Example request:

POST https://login.eveonline.com/oauth/token HTTP/1.1

Authorization: Basic bG9...ZXQ=
Content-Type: application/x-www-form-urlencoded
Host: login.eveonline.com

grant_type=authorization_code&code=gEyuYF_rf...ofM0
  • Authorization HTTP header: Basic access authentication is used, with the client ID as the username and secret key as the password. The header should be the string “Basic ” plus the Base64 encoded string {client_id}:{client_secret}.
    • It is very important to make sure there is no whitespace around or in the string that is being Base64 encoded. If in doubt, try to Base64 encode the sample values provided below and compare them to the results:
      • Example client ID: 3rdparty_clientid
      • Example secret key: jkfopwkmif90e0womkepowe9irkjo3p9mkfwe
      • Concatenated to become: 3rdparty_clientid:jkfopwkmif90e0womkepowe9irkjo3p9mkfwe
      • Base64 encoded to: M3JkcGFydHlfY2xpZW50aWQ6amtmb3B3a21pZjkwZTB3b21rZXBvd2U5aXJram8zcDlta2Z3ZQ==
      • Resulting in the Authorization header: Basic M3JkcGFydHlfY2xpZW50aWQ6amtmb3B3a21pZjkwZTB3b21rZXBvd2U5aXJram8zcDlta2Z3ZQ==
  • grant_type: Must be set to “authorization_code”.
  • code: The authorization code obtained earlier.

Alternatively, while not in accordance with the OAuth 2.0 standard, the body of the request may use JSON encoding. Example:

POST https://login.eveonline.com/oauth/token HTTP/1.1

Authorization: Basic bG9...ZXQ=
Content-Type: application/json
Host: login.eveonline.com

{
  "grant_type":"authorization_code",
  "code":"gEyuYF_rf...ofM0"
}

A successful verification request will yield a response containing details about the access token. Example:

{
    "access_token":"uNEEh...a_WpiaA2",
    "token_type":"Bearer",
    "expires_in":1200,
    "refresh_token":"gEy...fM0"
}

Refresh Tokens

If any valid scope was requested in the initial redirect to the SSO, a refresh token will be returned by the token endpoint, along with the access token. While the access token will expire after the listed interval, the refresh token can be stored and used indefinitely. Users can revoke access for individual apps on the support site.

To get a new access token you must make a POST request to https://login.eveonline.com/oauth/token with the following parameters:

  • grant_type: Must be set to “refresh_token”.
  • refresh_token: The refresh token received from the last request to the token endpoint.

You also need to include the same Authentication header (basic access authentication with the client ID as the username and secret key as the password) which was used for previous requests to the token endpoint.

The request should look like this:

POST https://login.eveonline.com/oauth/token HTTP/1.1

Authorization: Basic bG9...ZXQ=
Content-Type: application/x-www-form-urlencoded
Host: login.eveonline.com

grant_type=refresh_token&refresh_token=gEy...fM0

Alternatively, the body of the request may use JSON:

POST https://login.eveonline.com/oauth/token HTTP/1.1

Authorization: Basic bG9...ZXQ=
Content-Type: application/json
Host: login.eveonline.com

{
  "grant_type":"refresh_token",
  "refresh_token":"gEy...fM0"
}

The response should contain details about the new access token for that user. Example:

{
  "access_token":"MXP...tg2",
  "token_type":"Bearer",
  "expires_in":1200,
  "refresh_token":"gEy...fM0"
}

SSO For Browser Apps

From the perspective of OAuth2 based authentication, browser applications can be broken into two main categories based on where they communicate with the protected resources (In the case of EVE SSO, the protected resource is ESI). These categories can be broadly classed as Client side and Server side.

Client Side applications will communicate with the protected resource from the web browser, as such the authentication details never need to be shared with the server.

Server Side applications perform the communication with the protected resources on the web server. In this case the client doesn’t need to know about the authentication details.

The distinction between client and server side applications is important as it helps inform on the best OAuth2 authentication workflow to use,

Client Side Applications

In most situations, Client side applications will want use the Implicit Flow. The primary reason this is preferred for client side applications is that it avoids exposing the client secret. It also has the added benefit of reducing the number of steps required to get a usable token.

Using the implicit workflow is very easy - you simply redirect the user to the authorization endpoint, including your client_id, redirect_uri and setting response_type to token

It should be noted that the EVE SSO implementation of the OAuth2 Implicit flow appends the token object as a URL hash component, So it will not been seen by the server without the client explicitly passing it along.

Server Side Applications

Server side applications should always use the authorization code flow. Using the authorization code flow avoids exposing your authorization token to more than is necessary as the client side will only see the access code.

The Authorization code flow has the added benefit of being able to contain a refresh_token which can be used to get a new access_token even after it has expired. This is incredibly useful, eg. for applications that wish to perform resource access on a schedule.

The EVE SSO implementation of the authorization code flow appends the code as a query parameter to the URL so it will be visible to the server side of the application without any additional work on the client side.

Additional Notes

The suggestions made on this page outline the easiest authorization flow to use with client and server side applications, as well as some best practice reasoning. They are just suggestions and there could be any number of reasons to use the authorization code flow in a client side application, or pass the token acquired with the implicit flow back to the application server.

Non-Browser Apps

The OAuth2 workflow for non-browser applications is a more complicated process as there is no easy way to capture the post-auth redirect. Below you will find a number of common methods for capturing this redirect, each with its own pros and cons.

Non-Browser applications also differ in that there is no way to secure your secret key if you wish to use the authorization code workflow. Some applications (Such as Pyfa) get around this by providing an option for users to supply their own client_id / secret key combination.

Registered URL Handler

This method involves registering a URL Handler for your application, and using this as your redirect_uri

Pros
  • Excellent for mobile applications.
  • Native look and feel for the user.
Cons
  • Multi-instance applications require response routing
  • Some browser display warnings for unrecognised URL Schemes

URL Handlers are the best method to use in controlled, single instance environments such as mobile devices. Their use in Desktop OS such as Windows, OSX and Linux is harder due to varying methods of Handler registration, additional browser warnings, and increased developer effort in routing the response to the correct application instance.

Using this method require you to first chose a URL Scheme to register for your application. As you will need the scheme to be unique to your application it is probably best to use either your App name or a shortened variation of it.

Example: For the application “Amazing Eve App” I may chose the scheme “amazingeve://”

You will then need to register this scheme with your OS, details on how to do that can be found at:

For multi-instance applications the state parameter is useful storing which instance made the auth request. Mobile application may wish to use the state parameter in similar fashion to web apps.

When you create your application in the EVE Developer Console the Callback URL will need to be a path under your applications registered url scheme.

Example: Callback URL: amazingeve://auth/

To initiate the login process, launch a browser process to the authorisation endpoint as per the standard workflow.

Lightweight Local HTTP Server

For this method your application starts a short lived lightweight http server when the auth process starts.

Pros
  • Single solution for all platforms
  • Native look and feel for the user
Cons
  • May cause firewall prompt when you start the http server
  • It is hard to know how long to leave the server listening for
  • You may have conflicts with other applications or other instances of your application when attempting to bind the port

Using the HTTP Server method will require you to chose a port that will be unused on all of your users computers.

When you create your application in the EVE Developer Console the Callback URL will need to be a path under http://localhost:$port/, where $port is the port you have chosen to use.

When you initiate the login process, you need to start your local http server on your chosen port and have it wait to receive a request. You then launch a browser process ot the authorisation endpoint as per the standard workflow.

When the SSO authentication process has finished the user will be redirected to your local web server, where you can parse the request url for the authentication response.

Multi-instance applications may wish to have a shared process for running the web server and performing a return route for authentication request to avoid multiple instances attempting to bind to the same port, causing errors.

Currently EVE SSO does not support wildcard components in the Callback URL, so you can not bind to a random port.

You should always bind to your chosen port on the loopback interface.

Embedded Browser

This method is not recommended as it breaks the trust separation between application and authentication provider. It is detailed here for completeness, and should not be used unless the above options are not feasible.

Pros
  • Works everywhere all the time
Cons
  • The user will be entering their EVE credentials inside your application, breaking the trust separation.

This is probably the most strait forward method to implement.

  1. Chose a Callback URL
  2. Start a embedded browser in your application
  3. Listen for a URL Navigation event to your Callback URL
  4. Load the authorisation endpoint (per standard workflow) in the embedded browser.
  5. Wait for the user to complete the authentication process and for your Listen to trigger.
  6. Read the authentication details out of the URL.
Manual

Because of this methods heavy reliance on the user, it is not recommended

Pros
  • 100% Reliable, assuming your users can copy/paste correctly
Cons
  • Requires the user to correctly copy and paste a potentially very long string

In this method, you create a web page that echo authentication details back to the user and instructs the user to copy and paste these details into your application.

If you use this method, I recommend converting the response to base64url Encoded string to make copying easier.

Obtaining Character ID

Once you have obtained an access token, you can ask the login server for some details of the character that was used to authenticate.

This step is entirely optional, as all you need to authenticate to ESI is the access token.

To get the character ID from the SSO server make an HTTP GET request to https://login.eveonline.com/oauth/verify that looks like this:

GET https://login.eveonline.com/oauth/verify HTTP/1.1

User-Agent: ...
Authorization: Bearer uNEEh...a_WpiaA2
Host: login.eveonline.com

Important parameters are:

Authorization header - “Bearer” plus the access token from step 2 A successful request will yield a response in JSON format similar to the following:

{
    "CharacterID": 273042051,
    "CharacterName": "CCP illurkall",
    "ExpiresOn": "2014-05-23T15:01:15.182864Z",
    "Scopes": " ",
    "TokenType": "Character",
    "CharacterOwnerHash": "XM4D...FoY="
}

The response should be mostly self explanatory except for the CharacterOwnerHash which is a unique hash of the user, the character and salts and secrets all done in secret. But effectively this is unique and doesn’t change while the character belongs to the same user account. The CharacterOwnerHash will change if the character is transferred to a different user account and that is the only thing it is useful for, it cannot be used to obtain the user id for a character and it cannot be used to determine if two different characters belong to the same user. 3rd party applications can use this if they are sensitive to characters changing owners, if not this can be safely ignored.

Formulas

Warp-in Points

A warp-in point is where your ship will land in space when warping to an object.

Many external factors may disrupt a warp, e.g. warp disruption fields, insufficient electrical capacity, warp jitter, etc.; these formulas do not account for these phenomenas, they assume perfect conditions.

Ordinary Objects

An ordinary object is any object that does not fall withing any of the other categories described below.

Let the 3D vectors \( p_d \) and \( p_s \) represent the object’s position and the warp’s origin, respectively; and \( \vec{v} \) the directional vector from \( p_s \) to \( p_d \). Let \( r \) be the object’s radius.

The object’s warp-in point is the vector \( p_s + \vec{v} - r\hat{v} \).

Large Objects

A large object is any celestial body whose radius exceeds 90 kilometres (180 kilometres in diameter), except planets.

Let \( x \), \( y \), and \( z \) represent the object’s coordinates. Let \( r \) be the object’s radius.

The object’s warp-in point is the vector \( \left(x + (r + 5000000)\cos{r} \\, y + 1.3r - 7500 \\, z - (r + 5000000)\sin{r} \\ \right). \)

Planets

The warp-in point of a planet is determined by the planet’s ID, its location, and radius.

Let \( x \), \( y \), and \( z \) represent the planet’s coordinates. Let \( r \) be the planet’s radius.

The planet’s warp-in point is the vector \( \left(x + d \sin{\theta}, y + \frac{1}{2} r \sin{j}, z - d \cos{\theta}\right) \) where:

\[d = r(s + 1) + 1000000 \]
\[ \theta = \sin^{-1}\left(\frac{x}{|x|} \cdot \frac{z}{\sqrt{x^2 + z^2}}\right) + j \]
\[ s|_{0.5 \leq s \leq 10.5} = 20\left(\frac{1}{40}\left(10\log_{10}\left(\frac{r}{10^6}\right) - 39\right)\right)^{20} + \frac{1}{2} \]

Now, \( j \) is a special snowflake. Its value is the Python equivalent of
(random.Random(planetID).random() - 1.0) / 3.0.

Example Implementation
import math
import random

def warpin(id, x, y, z, r):
    j = (random.Random(id).random() - 1.0) / 3.0
    t = math.asin(x/abs(x) * (z/math.sqrt(x**2 + z**2))) + j
    s = 20.0 * (1.0/40.0 * (10 * math.log10(r/10**6) - 39))**20.0 + 1.0/2.0
    s = max(0.5, min(s, 10.5))
    d = r*(s + 1) + 1000000

    return (x + d * math.sin(t), y + 1.0/2.0 * r * math.sin(j), z - d * math.cos(t))

Skillpoints

Skillpoints needed per level

The skillpoints needed for a level depend on the skill rank.

\[ y_{skillpoints} = 2^{2.5(x_{skilllevel}-1)} \cdot 250 \cdot r_{skillrank} \]
Skillpoints for common ranks
RankLevel 1Level 2Level 3Level 4Level 5
1 250 1.414 8.000 45.254 256.000
2 500 2.828 16.000 90.509 512.000
3 750 4.242 24.000 135.764768.000
4 1.0005.656 32.000 181.0191.024.000
5 1.2507.071 40.000 226.2741.280.000
6 1.5008.485 48.000 271.5291.536.000
7 1.7509.899 56.000 316.7831.792.000
8 2.00011.31364.000 362.0382.048.000
9 2.25012.72772.000 407.2932.304.000
102.50014.14280.000 452.5482.560.000
112.75015.55688.000 497.8032.816.000
123.00016.97096.000 543.0583.072.000
133.25018.384104.000588.3123.328.000
143.50019.798112.000633.5673.584.000
153.75021.213120.000678.8223.840.000
164.00022.627128.000724.0774.096.000
Skillpoints per minute

The skillpoints generated each minute depend on the primary \( (a_{primary}) \) and secondary attribute \( (a_{secondary}) \) of the skill.

\[y_{skillpointsPerMinute} = a_{primary} + {a_{secondary} \over 2} \]

Combat

Target lock time

The target lock time (\( t_{targetlock} \)) in seconds depends on the ship’s scan resolution (\( s \)) and the target’s signature radius (\( r \))

\[t_{targetlock} = {40000 \over s \cdot asinh(r)^2} \]
Alignment time

The ship alignment time (\( t_{align} \)) depends on the ship’s inertia modifier (\( i \)) and the ships mass (\( m \))

\[t_{align} = { ln(2) \cdot i \cdot m \over 500000 } \]

Static Data Export

Introduction

The Static Data Export (SDE) is a CCP provided periodic snapshot of static data used in EVE Online. The SDE provides data in three formats:

  1. YAML is the preferred format for new data added to the SDE.
  2. SQLite is the packaging format for certain universe data.
  3. Microsoft SQLServer (MSSQL) dump format is the format for everything else.

Documentation for the export is provided in the YAML Files, SQLite Tables and MSSQL Tables sections, respectively.

Conversions

Originally, most of the SDE was provided in MSSQL format which was then converted by third party developers to various other database formats. Today, many third party developers continue to consume the SDE in database form only. Various third party tools have been written to convert the current SDE format to a pure database form, or other convenient forms. You can find a list of conversion tools in the Conversions section.

Conversions

Intoduction

Originally, the SDE was provided solely as an MS SQL server backup file. As the SDE is commonly used in environments where MS SQL is not available or would be overkill, a number of people maintain conversion routines and copies, to make it available in a more useful format.

As more formats were introduced, containing extra data, these routines were expanded to bring the data back into a single format.

As the various methods for conversion result in differing versions, with different layouts of data, conversions will be listed by the primary maintainer.

EVE SDE Database Builder - by Zifrian

EVE SDE Database Builder is a Windows application that lets users import the SDE yaml files into MS Access, MS SQL Server, Comma Separated Values, Semi-colon Separated Values, MySQL, PostgreSQL, and SQLite. Additionally, users can customize the import by language type and selecting specific SDE yaml files to import or ignore.

Main links for the application:

Desmont McCallock

Conversion Tool

Desmont provides a tool to run on Windows, to merge the other data back into the SQL Server SDE, and to convert into a variety of formats, either at full database, or individual tables.

  • SQL Server
  • MySQL
  • Postgres
  • MS Access
  • SQLite
  • CSV

This tool converts to a format close to the SDE as it was before CCP changed how it was produced -splitting it sqlserver, yaml and sqlite files- with blueprint information going into ramTypeRequirements. As such it should be more compatible with some older tools.

Steve Ronuken - Fuzzwork Enterprises

Steve provides conversions of the SDE for download, in the following formats:

.bz2 files can be unzipped with 7zip, on Windows. Historical copies are kept available. When data is migrated into alternate formats, it’s generally copied back into the old table format, but not always. The industry data, for example, is in a number of new industryActivity tables. While allowing for greater flexibility, this can break some older tools.

Conversion is performed by:

  • https://github.com/fuzzysteve/SDE-loaders to pull everything into SQL Server
  • MySQL Migration Wizard in the Mysql Workbench to convert to MySQL
  • pgloader to pull the mysql data into postgres
  • mysql2sqlite.sh to pull the mysql data into sqlite
  • DBIx::Dump to export the individual files.

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Tips

Included Files

Microsoft SQL Server Dump File

The SDE includes a Microsoft SQLServer dump file with several reference tables. Originally, almost all reference data was included in the SQLServer dump. The EVE Development Network documents much of the original contents of the dump file.

The current SQLServer dump contains the following tables:

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Agents Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Research Agents Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Factions Table (MSSQL)
NPC Corporations Table (MSSQL)

Table of all NPC Corporations.

NPC Corporations
  • Table Name: crpNPCCorporations
  • Description: NPC Corporations list.
Columns
Column Type Default Xrefs Description
corporationID PK int Unique corporation ID.
size char(1) Corporation size. One of 'H', 'L', 'M', 'S', or 'T' corresponding to 'Huge', 'Large', 'Medium', 'Small', and 'Tiny', respectively.
extent char(1) Corporation extent. One of 'G', 'N', 'R', 'C', or 'L' corresponding to 'Global', 'National', 'Regional', 'Constellation', and 'Local', respectively.
solarSystemID int mapSolarSystems.solarSystemID
Solar system ID where corporation headquarters is located.
investorID1 int crpNPCCorporations.corporationID
First investor corporation ID, if applicable.
investorShares1 tinyint Percent of shares held by first investor.
investorID2 int crpNPCCorporations.corporationID
Second investor corporation ID, if applicable.
investorShares2 tinyint Percent of shares held by second investor.
investorID3 int crpNPCCorporations.corporationID
Third investor corporation ID, if applicable.
investorShares3 tinyint Percent of shares held by third investor.
investorID4 int crpNPCCorporations.corporationID
Fourth investor corporation ID, if applicable.
investorShares4 tinyint Percent of shares held by fourth investor.
friendID int crpNPCCorporations.corporationID
Corporation ID of friendly corporation.
enemyID int crpNPCCorporations.corporationID
Corporation ID of enemy corporation.
publicShares bigint Percentage of shares available to the public. Currently not used.
initialPrice int Initial offering prce of public shares. Currently not used.
minSecurity float Unknown.
scattered bit 1 if corporation's stations are scattered in Universe. 0 otherwise.
fringe tinyint Number of fringe systems in which corporation's stations reside.
corridor tinyint Number of corridor systems in which corporation's stations reside.
hub tinyint Number of hub systems in which corporation's stations reside.
border tinyint Number of border systems in which corporation's stations reside.
factionID int chrFactions.factionID
Faction ID of the faction to which this corporation belongs.
sizeFactor float Numeric size of corporation.
stationCount smallint Number of stations owned by corporation.
stationSystemCount smallint Number of systems in which this corporation has a station.
description nvarchar(4000) Corporation description.
iconID int iconIDs file Icon ID for this corporation.
EVE Units Table (MSSQL)

In game units.

EVE Units
  • Table Name: eveUnits
  • Description: EVE in game units.
Columns
Column Type Default Xrefs Description
unitID PK tinyint Unit ID.
unitName varchar(100) Unit name, usually describing measure (e.g. Length).
displayName varchar(50) Displayed name of unit, usually an abbreviation (e.g. m).
description varchar(1000) Unit description, usually the full unit name (e.g. Meter).
Inventory Flags Table (MSSQL)

Table of ingame item location flags.

Inventory Flags
  • Table Name: invFlags
  • Description: Inventory item location flag.
Columns
Column Type Default Xrefs Description
flagID PK smallint Inventory item flag ID.
flagName varchar(200) Inventory flag name.
flagText varchar(100) Inventory flag descriptive text.
Inventory Items Table (MSSQL)

Names of all in-game items.

Inventory Items
  • Table Name: invItems
  • Description: Basic attributes of all static items.
Columns
Column Type Default Xrefs Description
itemID PK NN bigint invNames.itemID
invPositions.itemID
invUniqueNames.itemID
mapDenormalize.itemID
In-game item ID.
typeID NN int crpNPCCorporationTrades.typeID
dgmTypeAttributes.typeID
dgmTypeEffects.typeID
invTypeMaterials.typeID
invTypeReactions.typeID
typeIDs
mapDenormalize.typeID
Type of in-game item.
ownerID NN int ramAssemblyLineStations.ownerID Item owner ID.
locationID NN bigint agtAgents.locationID
mapLandmarks.locationID
mapLocationScenes.locationID
mapLocationWormholeClasses.locationID
Item location ID.
flagID NN smallint invFlags.flagID Item flags.
quantity NN int Item quantity.

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Inventory Meta Types Table (MSSQL)
Inventory Name Table (MSSQL)

Names of all in-game items.

Inventory Names
  • Table Name: invNames
  • Description: Names of all static items with names.
Columns
Column Type Default Xrefs Description
itemID PK NN bigint invItems.itemID
invPositions.itemID
invUniqueNames.itemID
mapDenormalize.itemID
In-game item ID.
itemName NN nvarchar(200) Name of in-game item.

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Inventory Positions Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Inventory Type Materials Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Inventory Type Reactions Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Inventory Unique Names Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Industry Activities Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Planet Schematics Table (MSSQL)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Station Operations Table (MSSQL)
Stations Table (MSSQL)

Table of all stations.

Stations
  • Table Name: staStations
  • Description: Stations list.
Columns
Column Type Default Xrefs Description
stationID PK int mapDenormalize.itemID
Unique station ID.
security smallint Station security level.
dockingCostPerVolume float Cost of docking per ship volume. Currently always zero.
maxShipVolumeDockable float Maximum volume of ship that can dock here (cubic meters).
officeRentalCost int Base office rental cost.
operationID tinyint staOperations.operationID
Station operaton mode.
stationTypeID int staStationTypes.stationTypeID
Station type.
corporationID int crpNPCCorporations.corporationID
Corporation ID of owning corporation.
solarSystemID int mapSolarSystems.solarSystemID
Solar system ID of solar system where station is located.
constellationID int mapConstellations.constellationID
Constellation ID of constellation where station is located.
regionID int mapRegions.regionID
Region ID of region where station is located.
stationName nvarchar(100) Station name.
x float X location of station in space.
y float Y location of station in space.
z float Z location of station in space.
reprocessingEfficiency float Base station reprocessing efficiency (percentage).
reprocessingStationsTake float Base station reprocessing tax (percentage).
reprocessingHangarFlag tinyint invFlags.flagID
Inventory flag for location of reprocessing output? Currently always 4 (Hangar).

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Station Types Table (MSSQL)
SQLite Database File

The SDE includes an SQLite database file which contains the following tables:

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Constellations Table (SQLite)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Denormalize Table (SQLite)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Regions Table (SQLite)

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Solar Systems Table (SQLite)
YAML Files

The SDE includes the following files (in file name order) exported in YAML format:

Blueprints
  • File Name: blueprints.yaml
  • Description: Blueprints informations.
Sample
681:
    activities:
        copying:
            time: 480
        manufacturing:
            materials:
            -   quantity: 86
                typeID: 38
            products:
            -   quantity: 1
                typeID: 165
            time: 600
        research_material:
            time: 210
        research_time:
            time: 210
    blueprintTypeID: 681
    maxProductionLimit: 300
682:
    activities:
        copying:
            time: 480
        manufacturing:
            materials:
            -   quantity: 133
                typeID: 38
            products:
            -   quantity: 1
                typeID: 166
            time: 600
        research_material:
            time: 210
        research_time:
            time: 210
    blueprintTypeID: 682
    maxProductionLimit: 300

Pretty much self-explanatory.

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Certificates

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

EVE Graphics

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Groups

Groups referenced by Inventory Types

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

EVE Icons

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Ship Skins

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Skin Licenses

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Skin Materials

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Tournament Rules
Inventory Types File (YAML)
Inventory Types
  • File Name: typeIDs.yaml
  • Description: Inventory type information.
Sample
4:
    groupID: 4
    name:
        de: Constellation
        en: Constellation
        fr: Constellation
        ja: コンステレーション
        ru: Constellation
        zh: 星座
    portionSize: 1
    published: false
    volume: 1.0
582:
    capacity: 270.0
    description:
        de: Im Jahr YC114 hatte jedes der führenden Großreiche aufgrund des entsetzlichen
            und nicht enden wollenden Kriegs auf allen Ebenen erkannt, dass ihre Schiffe
            Unterstützung und Logistikfunktionalität benötigten. Andernfalls würde
            der langwierige interstellare Krieg die Teilnehmer aufreiben. Im Staat
            der Caldari führte dies zur Umgestaltung und dem Neueinsatz der Bantam.
            Die Bantam, ein starkes und robustes Schiff, war ursprünglich eine äußerst
            effiziente Bergbaufregatte. Nach ihrer Umgestaltung wurde die breite Struktur
            der Bantam durch Logistiksysteme ersetzt, die einigen Platz im Innenraum
            in Anspruch nahmen. Dies erlaubte ihr jedoch, sich auf die Schildunterstützung
            verbündeter Schiffe zu konzentrieren.
        en: "In YC114 each major empire faction, having been embroiled in a harrowing,
            extensive, long-term war, recognized the growing need for support and
            logistics functionality in their vessels during the kind of protracted
            interstellar warfare that might otherwise prove exhausting for its participants.
            In the Caldari State, this led to the redesign and redeployment of the
            Bantam.\r\n\r\nThe Bantam, a strong and sturdy craft, was originally an
            extremely effective mining frigate. After its redesign, the Bantam's large
            structure had to give way for logistics systems that ate up some of its
            interior room but allowed it to focus extensively on shield support for
            fellow vessels."
        fr: 'En 114 après CY, les grandes factions des empires ayant toutes été engagées
            dans une guerre longue et pénible, reconnurent le besoin grandissant d''intégrer
            des fonctionnalités de soutien et de logistique dans leurs vaisseaux afin
            de pouvoir faire face à la durée extrême des guerres interstellaires et
            à l''épuisement des participants. Au sein de l''État caldari, ce processus
            conduisit à la refonte et au redéploiement du Bantam.


            Le Bantam, vaisseau résistant et puissant, était à l''origine une frégate
            d’extraction très efficace. Dans sa nouvelle version, la grande structure
            du Bantam accueille désormais des systèmes logistiques qui ont grignoté
            une partie de son espace intérieur mais lui permettent d''apporter une
            grande assistance de bouclier pour les autres vaisseaux qu''il accompagne.'
        ja: "YC114年、4大国を巻きこむ大規模戦争が勃発した。長く、凄惨で、広範にわたる戦いの中、各国では支援艦や補給艦の役割がしだいに重視されるようになった。そういった役割を果たす船がなければ戦力が疲弊してしまうのだ。これを受けて、カルダリ連合ではバンタムの設計を根本から見直し、再配備を行った。\n\t\t\nバンタムは馬力のある頑丈な艦船で、元々は採掘用フリゲートとしてその性能を高く評価されていた。設計見直しにより、大ぶりな船体に支援システムが詰めこまれ、多少手狭にはなったが、僚艦にシールドを補給する支援専門艦として生まれ変わった。"
        ru: В 114-м году по юлайскому летоисчислению крупнейшие государства галактики,
            увязшие в тяжёлой, затяжной войне без конца и края, были вынуждены обратить
            внимание на растущую потребность военных флотов в ремонтных кораблях и
            кораблях боевого обеспечения — она диктовалась самим характером продолжительных
            боевых действий в межзвёздном масштабе, способных полностью измотать противоборствующие
            стороны. В Государстве Калдари такой корабль был создан на основе фрегата
            «Бэнтам» после существенной переработки конструкции. «Бэнтам» — крепкий
            и прочный корабль. Он был чрезвычайно эффективен при добыче сырья. При
            перестройке конструкции обширный корпус «Бэнтама» был модифицирован для
            несения ремонтных систем. Это снизило полезный внутренний объем фрегата,
            но позволило сконцентрировать его функциональность на дистанционной накачке
            силовых полей дружественных кораблей.
        zh: 'YC114年,每个主要帝国势力都已经深陷战争泥潭,他们深深意识到了对现有舰只增加后勤功能的重要性,否则唯一的结果便是弹尽力竭。加达里合众国决定对矮脚鸡级护卫舰进行重新设计,赋予它新的使命。


            矮脚鸡级护卫舰船体坚固,采矿效率极高。重新设计后,它坚固的船体被后勤系统所取代,内部空间也有所减小,不过换来的是为友军舰船进行护盾传输的能力。'
    factionID: 500001
    graphicID: 38
    groupID: 25
    marketGroupID: 61
    mass: 1480000.0
    masteries:
        0:
        - 96
        - 139
        - 85
        - 87
        - 94
        1:
        - 96
        - 139
        - 85
        - 87
        - 94
        2:
        - 96
        - 139
        - 85
        - 87
        - 94
        3:
        - 96
        - 139
        - 85
        - 87
        - 94
        4:
        - 96
        - 139
        - 85
        - 118
        - 87
        - 94
    name:
        de: Bantam
        en: Bantam
        fr: Bantam
        ja: バンタム
        ru: Bantam
        zh: 矮脚鸡级
    portionSize: 1
    published: true
    raceID: 1
    radius: 27.0
    soundID: 20070
    traits:
        -1:
            1:
                bonus: 500
                bonusText:
                    de: Bonus auf die Transferreichweite von <a href=showinfo:3422>Schildfernboostern</a>
                    en: bonus to <a href=showinfo:3422>Remote Shield Booster</a> transfer
                        range
                    fr: de bonus à la portée de transfert des <a href=showinfo:3422>boosters
                        de bouclier à distance</a>
                    ja: <a href=showinfo:3422>リモートシールドブースター</a>の転送範囲が拡大
                    ru: увеличивается дальность действия <a href=showinfo:3422>установок
                        дистанционной накачки силовых полей</a>
                    zh: <a href="showinfo:3422">远程护盾回充增量器</a>作用距离加成
                unitID: 105
        3330:
            1:
                bonus: 10
                bonusText:
                    de: Bonus auf die Leistung von <a href=showinfo:3422>Schildfernboostern</a>
                    en: bonus to <a href=showinfo:3422>Remote Shield Booster</a> amount
                    fr: de bonus au montant des <a href=showinfo:3422>boosters de
                        bouclier à distance</a>
                    ja: <a href=showinfo:3422>リモートシールドブースター</a>のブースト量が増加
                    ru: повышается производительность <a href=showinfo:3422>установок
                        дистанционной накачки силовых полей</a>
                    zh: <a href="showinfo:3422">远程护盾回充增量器</a>回充量加成
                unitID: 105
            2:
                bonus: 10
                bonusText:
                    de: Reduktion der Aktivierungskosten von <a href=showinfo:3422>Schildfernboostern</a>
                    en: reduction in <a href=showinfo:3422>Remote Shield Booster</a>
                        activation cost
                    fr: de réduction du coût d'activation des <a href=showinfo:3422>boosters
                        de bouclier à distance</a>
                    ja: <a href=showinfo:3422>リモートシールドブースター</a>の起動コストが軽減
                    ru: сокращается потребление энергии <a href=showinfo:3422>установками
                        дистанционной накачки силовых полей</a>
                    zh: <a href="showinfo:3422">远程护盾回充增量器</a>启动消耗降低
                unitID: 105
    volume: 20000.0
Schema
map [int] Map typeID to type information
map [string] Map type field name to type information
groupID int Type group ID
mass float Type mass (kilograms)
name map [string] Map language code (two character) to type name in that language
portionSize int Type batch size (e.g. production units per industry job run)
published boolean True if type is published, false otherwise.
basePrice float Seed price of item when first introduced.
description map [string] Map language code (two character) to type description in that language
iconID int Type icon ID for UI
marketGroupID int Type market group ID
volume float Type volume (cubic meters)
sofFactionName string Skin faction name.
sofMaterialSetID [1] int Skin material set ID.
capacity float Capacity (cubic meters) for a type with a hold or container (e.g. ship)
factionID long Type faction ID
graphicID int Type graphic ID for UI
masteries map [int] Map mastery level (0 through 4) to certificate ID list
sequence [int] Sequence of Certificate IDs for corresponding mastery level
raceID int Type race ID
radius float Type radius (meters)
soundID int Type sound ID for UI
traits map [int] Map type trait to trait bonus list. Key value of -1 corresponds to the default trait for the type. This is normally determined by the group ID.
map [int] Enumeration of trait bonuses.
map [string] Map trait bonus name to value.
bonus int Trait bonus value
bonusText map [string] Map language code (two character) to bonus text in that language
unitID [1] int Bonus modification unit

Dogma

Introduction

In this document, I will (try to) explain how the Dogma system works for EVE Online for the purposes of fit calculations. I will be using fitting calculation engine EOS to reference things that are not published by CCP, namely operandIDs and their meaning, as well as the operators. These references can be found as constants in the EOS project: EVE and EOS constants. These constants may or may not be included in future documentation.

Additionally, I may refer to attributes in the form of attrID:attrName for simplicity.

Finally, I have produced a simple GUI that may be helpful when learning about Dogma expressions. Screenshots will be used in this document to visually assist with understanding the expression tree. For releases of this program, please see exp-gui.

What is Dogma?

At its core, Dogma is the system for managing all the attributes and modifying effects for the various items in EVE. Before we explain how Dogma works, we need to first understand items and effects. Items are the building blocks of EVE - everything in the game is an item. The modules that you put on your ship, the charges you load into your guns, and your ship itself. Items can also be non-physical entities such as system-wide wormhole effects or the tactical destroyer mode. Everything in EVE that has some sort of attribute attached to it is an item, and these are defined in the invTypes table.

But having a bunch of items with attributes is useless without a way for them to affect one another. That’s where effects come in. Effects are the building blocks of items and are what actually make an item do something. Suppose you fit a Webifier to your ship. When it’s active, it applies its decreaseTargetSpeed effect to the currently locked target. When it’s overloaded, it applies its overloadSelfRangeBonus effect to itself. Effects have a many-to-many relationship with items, where each effect may have be attached to many different items, and each item may have many different effects. Effects are defined in the dgmEffects table, whereas the relationship with items is defined with the dgmTypeEffects table.

Each effect (usually) has one or more modifiers which ultimately what is used in the calculations.

So now that we know what items and effects are, how do we apply one item’s effects to another item? We must create a modifier, of which each effect (usually) has one or more of, and to do this we need to know a few things (for simplicity, there are a couple points omitted):

  1. The source attribute
  2. The target (or location)
  3. The target attribute
  4. The operation / modifier
  5. The filter

For example, we have a Stasis Web II and are applying it to our target. The web module itself has an attribute that determines the penalty it deals, and this attribute is 20:speedFactor with a value of -60.0. This is our source attribute (the source attribute is always attached to the item that is calling the effect in question, in this case the Web II). The target attribute is 37:maxVelocity with the target being CurrentTarget (which is CCP’s definition of the currently locked and selected target). It is best to note here that if we are modifying an attribute that is not on the ship itself, but on another item, this would refer to where that item might be located (eg: current ship, current target, gang members, etc). The modifier is PostPercent, which basically tells us to apply our source attribute as a percentage to the target attribute.

The last point, the filter, is not applicable to our specific example, but is used in a lot of other effects. This is used to limit the effect to specific item groups, based on the group of the item or the required skill of the item. For example, the durationBonusForGroupAfterburner effect used to reduce duration of AB and MWDs (used with the Engine Thermal Shielding rigs). Instead of applying them to all our modules (which doesn’t make sense), we need to filter out modules that share the “Afterburner” group, which is all Afterburners and MWD’s.

We have an enemy Retribution currently locked and selected and it has with a max velocity of 348m/s. We convert our source attribute value, -60.0, to a percentage modifier (defined with PostPercent = val / 100 + 1)1 and we get 0.4. This is then multiplied with the target attribute to get the final value of 348 * 0.4 = 139.2m/s. And that’s how effects work.

So now you know what you should be looking for. How do you get it?

The Easy Way: modifierInfo

Note: more documentation on the various operators and functions need to be written.

CCP has recently started to move in a new direction with their effects, storing the modifier data in the effects modifierInfo field rather than in the expression tree. This is a YAML formatted field, and typically looks like this (from the shipModeMaxTargetRangePostDiv effect):

- domain: shipID
  func: ItemModifier
  modifiedAttributeID: 76
  modifyingAttributeID: 1991
  operator: 5

From this you can easily see the attributes that are involved. The operator used is 5, which is defined as PostDiv. func determines the kind of modification we are performing - is it simply a direct modification from attribute to attribute (like ItemModifier), or is there a filter that is being applied (like LocationGroupModifier). In this case, no filter is being applied. The domain tells us what our target is, in this case it’s our own ship. Please note that modifierInfo is relatively new, and there isn’t yet a lot of variety. For example, to my knowledge, there aren’t any projected effect (effects that are projected to something other than your own ship or character) that utilize the modifierInfo format, and thus this may change in the future.

The Legacy Way: dgmExpressions

The way CCP originally defined effects was the use of expressions. Each effect contains two references to expressions: preExpression and postExpression. The preExpression is used when an effect is applied (ie: a module is activated), whereas the postExpression is (usually) its mirror and used when the effect is removed. Expressions are stored in the dgmExpressions table and have a tree data structure, in which each expression can be made out of other expressions; traversing this tree and extracting the information needed to produce an actionable modifier is the ultimate goal.

Here is a typical entry in dgmExpressions.

"expressionGroupID": null,
"expressionAttributeID": null, 
"description": null, 
"expressionValue": null, 
"arg1": 3487, 
"arg2": 105, 
"expressionName": "((CurrentTarget->maxVelocity).(PostPercent)).AddItemModifier (speedFactor)", 
"operandID": 6, 
"expressionID": 3489, 
"expressionTypeID": null>

The important things to note here are arg1, arg2, and operandID. The operandID is the value that defines exactly what arg1 and arg2 is supposed to do. Usually, they are references to other expressions (like in this example), but they could also be used in comparison constructs (eg: operandID = 38 means that it uses the argument values in the following comparison: arg1 > arg2) or splicing multiple expressions together to form multiple modifiers (operandID = 17). The operandID is also useful in determining if you have workable data. For example, operandID = 22 defines this expression as pointing to an attribute, and to find the attribute ID in the expressionAttributeID field. As another example, operandID = 24 tells us that current expression defines the target which is found in the expressionValue field.

Unfortunately, CCP does not publish the information on what operand does what, but you can get this data from the client cache. You can also reference player-made documentation such as the EOS EVE constants that I referred at the beginning of this document which may be more helpful/insightful.

So now that you know what the three main fields do, what about the other ones? All the expression*ID fields have information that can be used in the final modifier, whether it be an attribute, target, or even a filter (for example, some effects are defined as being applied to only items under a certain group).

expressionName is basically an overview of what you could expect to find when you traverse the expression tree. It’s a compilation of all the other expressions that are attached to the current one.

Traversing the Expression Tree: Stasis Webifier II

Let’s start back at our decreaseTargetSpeed effect, which has a preExpression of 3489 and a postExpression of 3491. As they are both practically the same, we’ll focus on the preExpression for now. We will call this our root tree. Under the root tree of most expressions, the arguments will always reference other expressions - again, you will need to check the operandID to determine this. If this is an actionable operand (one that begins to define a modifier rather than a logic construct), arg2 is always going be an expression that defines the source attribute, while arg1 will eventually define everything else.

We start by loading both arguments and look at the data we obtain:

We can see that root.arg2.operandID = 22, which designates that this expression is defining an attribute. You can see the attribute ID is 20 and the name is speedFactor. Again, arg2 of an actionable root tree always defines the source attribute, so already we have 1 piece of critical information.

arg1 is left to define everything else. root.arg1.operandID = 31 designates this expression as one that joins the operator and target definitions. Being a joiner expression, we can safely load more expressions into arg1 and arg2, using their values as the expressionID. Loading that data up shows:

In the above image, I collapsed root.arg2 and have expanded both arguments in root.arg1. Be very careful - it’s easy to get lost in the tree. Looking at root.arg1.arg1.operandID = 21, which defines the operator of the effect in the expressionValue field; PostPercent in this case. So now we have both the source attribute and the operator of the effect.

root.arg1.arg2.operandID = 12, which defines the expression as joining the target and the target item - our last two data points needed for this effect. Again, load the next two expressions using the values in the arguments as the expressionID

Again, I’ve collapsed the arguments that have already been used, and expanded the two new ones. Immediately you can see that the tree ends here, as there are no more arguments.

root.arg1.arg2.arg1.operandID = 24 which defines the expression as carrying the target information in expressionValue, in this case Target. This is CCP’s definition of the currently locked and selected target. The only thing that is left is the target attribute that we are modifying...

root.arg1.arg2.arg2.operandID = 22 defines the expression as an attribute, the ID of which is in expressionAttributeID, in this case 37:maxVelocity. You may be wondering how we know this is the target attribute and not another attribute that might be used in the expression. The answer to this would be the parent expression, whose operand defines it as joining the target and target attribute.

And that’s it! We have traversed the preExpression tree and compiled a list of the needed information:

  1. The source attribute: 20:speedFactor
  2. The target: Target
  3. The target attribute: 37:maxVelocity
  4. The operation / modifier: PostPercent
Traversing the Expression Tree: Shield Boost Amplifier II

This example will utilize the shieldBoostAmplifier effect to demonstrate filters and hopefully clarify what we mean by “actionable” expression, as the previous example was a little vague.

From here we can see that root.operandID = 17, which is defined as a splice. A splice basically chains multiple modifiers together; a way to express different modifiers with one effect. Consider a scenario when you want to attach more than one modifier to an effect. The Damage Control module comes to mind. It has 11 splice expressions, which total 12 modifiers (one modifier for each resist for each tank type). This is also not an “actionable” expression, as we are not yet collecting the data needed to create the modifier. As such, arg2 does not point to source attribute, but rather to an entirely new expression tree. The same goes for arg1. While the use of the arguments is up to the operand being used, in this specific situation, both arg1 and arg2 should be treated as root expressions and evaluated as such. If we expand arg1 we see that the root.arg1.operandIS = 9, which is defined as applying some attribute to an item by using a skill filter.

From here we take the same process as with the previous example. As such, I will only summarize: root.arg1.arg2 will define the source attribute. root.arg1.arg1 expands to define the operation (root.arg1.arg1.arg1) and target (root.arg1.arg1.arg2)

In the target expression, root.arg1.arg1.arg2.arg2 defines the target attribute, and root.arg1.arg1.arg2.arg1 defines the target itself. Here’s where we get some new information.

You can see that we have a new operand: root.arg1.arg1.arg2.arg1.operandID = 49 defines this expression as joining a target (arg1) and skill requirement definitions (arg2). These two definitions tell us to look at the modules of our own ship (target: CurrentShip) and apply the effect to modules requiring the skill Capital Shield Operation.

But, we all know that Shield Boost Amplifier II doesn’t just work on Capital Shield Boosters. This is why we have a splice: root.arg2 defines the same modifier with a different skill: Shield Operation, which would apply the effect to all other shield boosters in the game.

  • Modifier 1
    1. The source attribute: 548:shieldBoostMultiplier
    2. The target: Ship
    3. The target attribute: 68:shieldBonus
    4. The operation / modifier: PostPercent
    5. Filter: Skill - 21802:Capital Shield Operation
  • Modifier 2.
    1. The source attribute: 548:shieldBoostMultiplier
    2. The target: Ship
    3. The target attribute: 68:shieldBonus
    4. The operation / modifier: PostPercent
    5. Filter: Skill - 3416:Shield Operation
Using Modifier Data

One you extract the modifier information from the expression tree, you can use it in your dogma calculations. EOS, for example, only used the compiled modifier information in its calculations. Once it’s made its modifier database, it never touches the expression trees again. Ultimately it’s up to the developer of the application to decide what they wish to do with the information.

This was a simple example. There are more complicated effects than discussed here. It’s important to remember that the operandIDis the key to determining what exactly an expression is trying to portray.

Caveats

There are a few “gotchas” when it comes to expression tree building. There are a few group filters that seem to be misrepresented. Also, preExpressions and postExpressions do not always mirror each other, notably for stateful modules (modules that modify the state of your ship in game rather than an attribute, such as armor repairers which modify the amount of armor damage you have, not the amount of armor you have).

However, these examples should be enough to jump start your development, expansion to the articles are always welcomed.

Resources
  1. EOS - EVE constants Has a lot of information on operandIDs as well as effect categories
  2. EOS - EOS constants EOS-specific constants, however they provide a little more context for things like domains (the target of the effect).
  3. EOS - Cache Generator logic This is a great resource for figuring out how this information may be applied programatically. It’s complex, but fairly easy to follow.
  4. dgmOperands: JSON file that defines dgmOperands table from the EVE client cache.

Footnotes

1 Arithmetic for the various operations can be found here

Image Server

Introduction

You can use this service to obtain images related to entities in New Eden. At this time, it is possible to get alliance logos, corp logos, character portraits, faction logos, ship renders and inventory type icons in various resolutions.

Corporation logos, alliance logos, inventory type icons and ship renders are returned as transparency-enabled 32 bit PNGs. Character portraits are returned as JPEGs.

If a given image is not found in the database, the service responds with a 302 Moved HTTP response and redirects the HTTP client to a generic image. If you request an image in an invalid size, you get a plain 404.

You are welcome to point your clients and applications directly at the image server and use it as a CDN. You do not need to cache the images and serve them yourself.

The base URL for the image server is https://imageserver.eveonline.com

Image Routes

Alliance Images
  • URL Pattern: /Alliance/{allianceID}_{width}.png

  • Available Sizes: 32, 64, 128

  • Samples:

Corporation Images
  • URL Pattern: /Corporation/{corpID}_{width}.png

  • Available Sizes: 32, 64, 128, 256

  • Samples:

Character Images
  • URL Pattern: /Character/{characterID}_{width}.jpg

  • Available Sizes: 32, 64, 128, 256, 512, 1024

  • Samples:

Faction Images
  • URL Pattern: /Alliance/{factionID}_{width}.png

  • Available Sizes: 32, 64, 128

  • Samples:

Inventory Types
  • URL Pattern: /Type/{typeID}_{width}.png

  • Available Sizes: 32, 64

  • Samples:

Ship and Drone Renders
  • URL Pattern: /Render/{typeID}_{width}.png

  • Available Sizes: 32, 64, 128, 256, 512

  • Samples:

Legacy Portraits

Legacy portraits are from before the change to the existing character creator that occurred on November 30th, 2010 with the release of the Incursion expansion. These renders let you see how characters that existed back then looked in the previous character creator.

CREST

This API is deprecated and will be shut down May 8th, 2018 or earlier if metrics signal a trivial level of usage. Please use ESI.

Deprecation Notice

This API will be shut down May 8th, 2018 or earlier if metrics signal a trivial level of usage, please use ESI instead. The following is kept for historical purposes.

Introduction

CREST is the new RESTfull API, destined to replace the older XML API. Currently there is far less data available on CREST, so the XML API is not going away for a long time. The main selling points of CREST include:

  • CREST is capable of allowing write access, as well as read.
  • CREST communicates directly with the game servers, rather than the backend database, so can better reflect the current state of the game.
  • CREST is built with high traffic and complex loads in mind and has strong caching. Expect shorter cache timers and better performance and reliability.
Walking

CREST is designed to be a properly RESTful API with good support for versioning and changes. As such, a well designed app will not break when things are changed on the API (most of the time!). To enable this one of the things your app should do is generate links to endpoints dynamically. The only hard coded URL will be to the root resource. Here you will find a list of all the other top level endpoints, with href elements for each.

  • To get the base list of endpoints, you simply need to make an HTTP GET request to the appropriate root (SISI or TQ).
  • To dynamically acquire possible authed endpoints, you should make an authed HTTP GET request to the decode endpoint.

For more details on walking through endpoints, see the appropriate section of these docs.

Authentication and Scopes

When designing your application you will need to decide what information you require from CREST and if any of that information requires authentication.

Currently most data does not require authentication. Anything that is not public will have a scope attached. In order to access these endpoints, your app must have been set up with that scope enabled on the dev site and you must have requested that scope when getting your access token from the SSO.

Once you have decided what scopes you require for your app, you will need to follow the instructions in the SSO section to register your app on the dev site and then to get an access token.

Scopes

When designing your application you will need to decide what information you require from CREST and if any of that information requires authentication.

publicData

The first scope released. Not required by any resources, as public data doesn’t require any authentication anymore.

characterAccountRead

Allows an application to read your character’s account information.

characterAssetsRead

Allows an application to read your character’s assets.

characterBookmarksRead

Allows an application to read your character’s bookmarks.

characterCalendarRead

Allows an application to read your character’s calendar.

characterChatChannelsRead

Allows an application to read a list of the chat channels your character is in.

characterClonesRead

Allows an application to read a list of your character’s clones.

characterContactsRead

Allows access to reading your character’s contacts.

characterContactsWrite

Allows access to create and update your character’s contacts.

characterFactionalWarfareRead

Allows an application to read your character’s FW information.

characterFittingsRead

Allows an application to read all of the saved fits for a character.

characterFittingsWrite

Allows an application to create new saved fits as well as delete existing ones.

characterIndustryJobsRead

Allows an application to read your character’s industry jobs.

characterKillsRead

Allows an application to read your character’s killmails. Only killmail that the character is the victim or the finalBlow will be returned with this scope.

characterLocationRead

Allows an application to read your character’s current location.

characterMailRead

Allows an application to read your character’s mail.

characterMarketOrdersRead

Allows an application to read your character’s market orders.

characterMedalsRead

Allows an application to read your character’s medals.

characterNavigationWrite

Allows an application to set your auto-pilot waypoints on your client.

characterNotificationsRead

Allows an application to read your character’s notifications.

characterResearchRead

Allows an application to read your character’s research information.

characterSkillsRead

Allows an application to read your character’s skills.

characterWalletRead

Allows an application to read your character’s wallet.

Using your access token

Once you have a valid access token from the SSO, you can make calls to authenticated CREST by adding an Authorization header and using the auth’d crest endpoint.

Authorization: Bearer [Your access token]

An authenticated call that lists all regions would look like this (note that the url here should have been obtained dynamically from the root endpoint, rather than being hardcoded):

POST https://crest-tq.eveonline.com/regions/ HTTP/1.1

Authorization: Bearer bG9...ZXQ=
Accept: application/vnd.ccp.eve.RegionCollection-v1+json
Host: crest-tq.eveonline.com

For information on the Accept header used here, see the Versioning section.

Rate Limits

CREST utilizes two rate limiting schemes: a basic per IP rate limit and a secondary per access token rate limit. If the rate limits are overstepped, requests will fail with a 503 error code.

Per IP Rate Limit
  • Rate limit: 150 requests per second
  • Burst limit: 400 requests
  • Maximum concurrent connections: 20

This rate limit is applied per IPv4 address. All requests count against this limit. If multiple clients are making requests from the same public IPv4 address, they will be subject to a common rate limit.

Maximum concurrent connections refers to the number of separate HTTP keep-alive connections which a client may use for requests. Attempts to start more connections than the limit will result in requests sent over them failing.

Access Token Rate Limit
  • Rate limit: 20 requests per second
  • Burst limit: 100 requests

This rate limit is applied per SSO access token. Unauthenticated requests (those without an Authorization header) do not count against this limit. If multiple clients are making requests using the same access token, they may or may not be subject to a common rate limit.

Burst Limits

Burst limits allow clients to make extra requests over the rate limits. Requests made over the rate limit will still be processed immediately, but if the number of extra requests reaches the burst limit, any further requests will fail.

Versioning

Accept and Content-Type Headers

In order to help app developers preserve compatibility across updates to the CREST API, whenever an endpoint receives a breaking change, a new version is created and the old version remains available.

In order to request a specific version, you should send an Accept header, containing the appropriate Content-Type for the resource. It is good practice to always send this header in production, so that your app will continue to use a version of the resource that is known to work, regardless of changes made to CREST.

The easiest way to find the latest Content-Type for the endpoint is to make a request with no Accept header. If no such header is sent, the latest version is always returned. For example, a call to the Public CREST root, with no headers attached will contain the following in the response headers:

Content-Type: application/vnd.ccp.eve.Api-v3+json; charset=utf-8

In order to ensure that you always receive this version, you simply need to add this header to your POST (ignore the charset for versioning):

Accept: application/vnd.ccp.eve.Api-v3+json

If you need version 2 of this resource, you can send this header instead:

Accept: application/vnd.ccp.eve.Api-v2+json
The X-Deprecated Header

To help you find out when a resource is updated, old versions will send an X-Deprecated header. It is up to you to decide what to do with this in your app to help alert you to update it.

Breaking Changes

Not all API changes will trigger a new version. Specifically it has been announced that new items can be added to endpoints without changing the version. Because of this, your app should not rely on there only being certain items in the json of a response.

Any change that removes something from the result, or changes the format of data will normally be made in a new version.

Numeric Strings

Throughout CREST, all integer properties (with some exceptions, such as the bulk market order resource) will also have a corresponding _str suffixed string property, containing the string representation of the integer value, listed along them.

The _str properties are present to ensure that languages which aren’t natively capable of handling large 64 bit integers are able to handle them anyway, either using direct string comparison or with the assistance of an arbitrary precision integer library.

An example of this is JavaScript, whose native Number type stores all numeric values as double-precision floating-point values, so loss of precision will occur for integers above 2^53, potentially resulting in unexpected behaviour.

Calls

Character
Characters

The characters location resource allows an application to read a character’s public data as well as links for various other character related enpoints.

Route

/characters/<characterID:characterIdType>/

API version

Character-v4+json

GET
  • Cache: 5 minutes
{
    "race": {
    "href": "https://crest-tq.eveonline.com/races/4/",
    "id": 4,
    "id_str": "4"
  },
  "fittings": {
    "href": "https://crest-tq.eveonline.com/characters/2047918291/fittings/"
  },
  "description": "Demo description. HI MOM!",
  "bloodLine": {
    "href": "https://crest-tq.eveonline.com/bloodlines/13/",
    "id": 13,
    "id_str": "13"
  },
  "gender_str": "1",
  "corporation": {
    "name": "Resilience.",
    "isNPC": false,
    "href": "https://crest-tq.eveonline.com/corporations/98019139/",
    "id_str": "98019139",
    "logo": {
      "32x32": {
        "href": "http://imageserver.eveonline.com/Corporation/98019139_32.png"
      },
      "64x64": {
        "href": "http://imageserver.eveonline.com/Corporation/98019139_64.png"
      },
      "128x128": {
        "href": "http://imageserver.eveonline.com/Corporation/98019139_128.png"
      },
      "256x256": {
        "href": "http://imageserver.eveonline.com/Corporation/98019139_256.png"
      }
    },
    "id": 98019139
  },
  "contacts": {
    "href": "https://crest-tq.eveonline.com/characters/2047918291/contacts/"
  },
  "opportunities": {
    "href": "https://crest-tq.eveonline.com/characters/2047918291/opportunities/"
  },
  "id_str": "2047918291",
  "href": "https://crest-tq.eveonline.com/characters/2047918291/",
  "ui": {
    "setWaypoints": {
      "href": "https://crest-tq.eveonline.com/characters/2047918291/ui/autopilot/waypoints/"
    },
    "showContract": {
      "href": "https://crest-tq.eveonline.com/characters/2047918291/ui/openwindow/contract/"
    },
    "showMarketDetails": {
      "href": "https://crest-tq.eveonline.com/characters/2047918291/ui/openwindow/marketdetails/"
    }
  },
  "location": {
    "href": "https://crest-tq.eveonline.com/characters/2047918291/location/"
  },
  "gender": 1,
  "portrait": {
    "32x32": {
      "href": "http://imageserver.eveonline.com/Character/2047918291_32.jpg"
    },
    "64x64": {
      "href": "http://imageserver.eveonline.com/Character/2047918291_64.jpg"
    },
    "128x128": {
      "href": "http://imageserver.eveonline.com/Character/2047918291_128.jpg"
    },
    "256x256": {
      "href": "http://imageserver.eveonline.com/Character/2047918291_256.jpg"
    }
  },
  "id": 2047918291,
  "loyaltyPoints": {
    "href": "https://crest-tq.eveonline.com/characters/2047918291/loyaltypoints/"
  },
  "name": "Blacksmoke16"
}
Contacts and Contact

The character contacts resource allows an application to both read and write a character’s contacts.

Contacts
Route

/characters/<characterID:characterIdType>/contacts/

GET
  • Cache: 5 minutes
  • Scope: characterContactsRead

It is important to remember that adding or deleting a contact will not invalidate this cache. It is recommended that so long as you get the proper response code from CREST when you POST a new contact that you update any local cache at least temporarily.

{
    "totalCount_str": "1024",
    "pageCount": 6,
    "items": [
        {
            "standing": 3.5,
            "character": {
                "name": "0men666",
                "corporation": {
                    "name": "Far-East Corporation",
                    "isNPC": false,
                    "href": "https://api-sisi.testeveonline.com/corporations/98196279/",
                    "id_str": "98196279",
                    "logo": {
                        "32x32": {
                            "href": "https://image.testeveonline.com/Corporation/98196279_32.png"
                        },
                        "64x64": {
                            "href": "https://image.testeveonline.com/Corporation/98196279_64.png"
                        },
                        "128x128": {
                            "href": "https://image.testeveonline.com/Corporation/98196279_128.png"
                        },
                        "256x256": {
                            "href": "https://image.testeveonline.com/Corporation/98196279_256.png"
                        }
                    },
                    "id": 98196279
                },
                "isNPC": false,
                "href": "https://api-sisi.testeveonline.com/characters/1600000294/",
                "capsuleer": {
                    "href": "https://api-sisi.testeveonline.com/characters/1600000294/capsuleer/"
                },
                "portrait": {
                    "32x32": {
                        "href": "https://image.testeveonline.com/Character/1600000294_32.jpg"
                    },
                    "64x64": {
                        "href": "https://image.testeveonline.com/Character/1600000294_64.jpg"
                    },
                    "128x128": {
                        "href": "https://image.testeveonline.com/Character/1600000294_128.jpg"
                    },
                    "256x256": {
                        "href": "https://image.testeveonline.com/Character/1600000294_256.jpg"
                    }
                },
                "id": 1600000294,
                "id_str": "1600000294"
            },
            "contact": {
                "id_str": "1600000294",
                "href": "https://api-sisi.testeveonline.com/characters/1600000294/",
                "name": "0men666",
                "id": 1600000294
            },
            "href": "https://api-sisi.testeveonline.com/characters/92095466/contacts/1600000294/",
            "contactType": "Character",
            "watched": true,
            "blocked": false
        }
    ],
    "next": {
        "href": "https://api-sisi.testeveonline.com/characters/92095466/contacts/?page=2"
    },
    "totalCount": 1024,
    "pageCount_str": "6"
}
POST
  • Scope: characterContactsWrite

Returns the Location of the newly created contact in the Location header (also when contact already exists)

{
    "standing": 3.5,
    "contactType": "Character",
    "contact": {
        "id_str": "1600000294",
        "href": "https://api-sisi.testeveonline.com/characters/1600000294/",
        "name": "0men666",
        "id": 1600000294
    },
    "watched": true
}
Route

/characters/<characterID:characterIdType>/contacts/<contactID:contactIdType>/

PUT
  • Scope: characterContactsWrite

Adds or updates a contact.

{
    "standing": "10.0",
    "contactType": "Character",
    "contact": {
        "id_str": "1600000294",
        "href": "https://api-sisi.testeveonline.com/characters/1600000294/",
        "name": "0men666",
        "id": 1600000294
    },
    "watched": false
}
DELETE

No content required for this request. Expect it to delete whatever resource it is sent to.

Errors

Each of these errors should be presented to the user so they can take the required action.

ContactsAddFull
  • Message: “The contact list you are adding to is full. Please consider trimming your current list.”
  • Note: You can currently have no more than 1024 personal contacts.
Fittings and Fitting

The character fittings resource allows an application to both read and write to the saved fitting service. This does not have anything to do with actually fitting a ship, just the saved fits.

One of the really nice things about the CREST fitting service is that when a fit is added or deleted a notification is sent to any connected clients. This means if a character has their fitting window open and a fit is added through CREST the fitting window should be updated almost immediately.

Fittings
Route

/characters/<characterID:characterIdType>/fittings/

GET
  • Cache: 15 minutes
  • Scope: characterFittingsRead

It is important to remember that adding or deleting a fit will not invalidate this cache. It is recommended that so long as you get the proper response code from CREST when you POST a new fit that you update any local cache at least temporarily.

{
  "totalCount_str": "1",
  "items": [
    {
      "description": "THIS IS A TEST FIT DESCRIPTION!",
      "fittingID_str": "258",
      "items": [
        {
          "flag": 11,
          "quantity_str": "1",
          "type": {
            "id_str": "518",
            "href": "https://crest-tq.eveonline.com/inventory/types/518/",
            "id": 518,
            "name": "Basic Gyrostabilizer"
          },
          "flag_str": "11",
          "quantity": 1
        }
      ],
      "fittingID": 258,
      "href": "https://crest-tq.eveonline.com/characters/90000001/fittings/258/",
      "ship": {
        "id_str": "587",
        "href": "https://crest-tq.eveonline.com/inventory/types/587/",
        "id": 587,
        "name": "Rifter"
      },
      "name": "THIS IS A TEST FIT NAME!"
    },
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 1
}
POST
  • Scope: characterFittingsWrite
{
  "name": "Name here...",
  "description": "Description here...",
  "items": [{
    "type": {
        "id": 518,
        "name": "Basic Gyrostabilizer",
        "href": "https://crest-tq.eveonline.com/inventory/types/518/"
    },
    "flag": 11,
    "quantity": 1
  }],
  "ship": {
    "id": 587,
    "name": "Rifter",
    "href": "https://crest-tq.eveonline.com/inventory/types/374/"
  }
}
Fitting
Route

/characters/<characterID:characterIdType>/fittings/<fittingID:fittingIdType>/

GET
  • Cache: 15 minutes
  • Scope: characterFittingsRead
{
  "description": "THIS IS A TEST FIT DESCRIPTION!",
  "fittingID_str": "258",
  "items": [
    {
      "flag": 11,
      "quantity_str": "1",
      "type": {
        "id_str": "518",
        "href": "https://crest-tq.eveonline.com/inventory/types/518/",
        "id": 518,
        "name": "Basic Gyrostabilizer"
      },
      "flag_str": "11",
      "quantity": 1
    }
  ],
  "fittingID": 258,
  "href": "https://crest-tq.eveonline.com/characters/90000001/fittings/258/",
  "ship": {
      "id_str": "587",
      "href": "https://crest-tq.eveonline.com/inventory/types/587/",
      "id": 587,
      "name": "Rifter"
  },
  "name": "THIS IS A TEST FIT NAME!"
}
DELETE

No content required for this request. Expect it to delete whatever resource it is sent to.

Errors

Each of these errors should be presented to the user so they can take the required action.

FittingsStopSpamming
  • Message: “Spamming the fitting service.”
  • Note: The fitting service is rate limited outside of CREST. This applies to all applications trying to access it, including the client. Stop for 15 seconds and wait.
OwnerMaxFittings
  • Message: “Maximum fittings of {} reached.”
FittingNameTooLong
  • Message: “Maximum fitting name length is {}.”
FittingDescriptionTooLong
  • Message: “Maximum fitting description length is {}”
Opportunities

Shows opportunities that the character completed

Contacts
Route

/characters/<characterID:characterIdType>/characterOpportunitiesRead/

GET
  • Cache: 1 hour
  • Scope: characterOpportunitiesRead
{
  "totalCount_str": "52",
  "items": [
    {
      "completed": "2016-02-22T19:23:06",
      "task": {
        "href": "https://crest-tq.eveonline.com/opportunities/tasks/2/",
        "id": 2,
        "id_str": "2"
      }
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 52
}
Waypoints

The characters waypoints resource allows an application to write a character’s waypoints.

Route

/characters/<characterID:characterIdType>/ui/autopilot/waypoints/

POST
  • Scope: characterNavigationWrite

Body format:

{
  "clearOtherWaypoints": false,
  "first": false,
  "solarSystem": {
    "href": "https://crest-tq.eveonline.com/solarsystems/30000003/",
    "id": 30000003
  }
}

There is no response, you should look at response code to know if action succeeded. There also isn’t any response if you set same waypoint twice (like in game voice).

Location

The characters location resource allows an application to read a character’s location.

Route

/characters/<characterID:characterIdType>/location/

GET
  • Cache: 5 seconds
  • Scope: characterLocationRead

User has to be online to see his location, if he is offline then the response is empty.

{
  "solarSystem": {
    "id_str": "30002782",
    "href": "https://crest-tq.eveonline.com/solarsystems/30002782/",
    "id": 30002782,
    "name": "Kamio"
  }
}
Open Window

The open window resource allows an application to open various windows inside the client.

Open Market Details

The characters openWindow marketdetails resource allows an application to open the market details window for a specific typeID inside the client.

Route

/characters/<characterID:characterIdType>/ui/openwindow/marketdetails/

POST
  • Scope: remoteClientUI

The typeID in the href of body does not matter and can remain 0. However it may be good practice to include the typeID in the href url as a means of future poofing.

User has to be online for window to open, response is empty if offline.

Body format:

{
    "type":     {
      "href": "https://crest-tq.eveonline.com/inventory/types/34/",
      "id": 34
    }
}

There is no response, if the action is successful the market details window will open.

Open Contract

The characters openwindow contract resource allows an application to open a specific contract inside the client.

Route

/characters/<characterID:characterIdType>/ui/openwindow/contract/

POST
  • Scope: remoteClientUI

User has to be online for window to open, response is empty if offline.

Body format:

{
    "contractID": 106338363
}

There is no response, if the action is successful the contract will open.

Open Owner Details

The characters openWindow ownerdetails resource allows an application to open an info window about the requested character, corporation, or alliance inside the client.

Route

/characters/<characterID:characterIdType>/ui/openwindow/ownerdetails/

POST
  • Scope: remoteClientUI

User has to be online for window to open, response is empty if offline.

Body format:

{

      "id": 99002938
}

There is no response, if the action is successful the info window will open.

Route

/characters/<characterID:characterIdType>/ui/openwindow/newmail/

POST
  • Scope: remoteClientUI

User has to be online for window to open, response is empty if offline.

Body format:

{

      "subject": "Hello",
      "body": "I would like to negotiate BPO prices with you.",
      "recipients": [{"id": 1536904870}]
}

There is no response, if the action is successful the mail window will open. The body parameter accepts Eve’s basic HTML markdown formatting. Multiple recipients can be present in the array in the above object formatting.

Map
Constellations and Constellation

The constellations resource allows an application to read constellations.

Constellations
Route

/constellations/

GET
  • Cache: 1 hour
{
  "totalCount_str": "1120",
  "items": [
    {
      "id_str": "20000001",
      "href": "https://crest-tq.eveonline.com/constellations/20000001/",
      "id": 20000001,
      "name": "San Matar"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 1120
}
Constellation
Route

/constellations/<constellationID:constellationIdType>/

Constellation IDs for K-space start above 20000000, and IDs for W-space start above 21000000.

GET
  • Cache: 1 hour
{
  "position": {
    "y": 1423857875901778200,
    "x": 7849376741752832000,
    "z": -9760976595570807000
  },
  "region": {
    "href": "https://crest-tq.eveonline.com/regions/11000016/"
  },
  "systems": [
    {
      "href": "https://crest-tq.eveonline.com/solarsystems/31002538/",
      "id": 31002538,
      "id_str": "31002538"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "name": "D-C00328"
}
Planets and Planet

The planets resource allows an application to read planets data.

Planets
Route

/planets/

GET
  • Cache: 1 hour
    Not implemented!
Planet
Route

/planets/<planetID:planetIdType>/

GET
  • Cache: 1 hour
{
  "position": {
    "y": 1779972523.4447613,
    "x": 33386455397.271893,
    "z": 3500846503.473558
  },
  "solarSystem": {
    "id_str": "31000063",
    "href": "https://crest-tq.eveonline.com/solarsystems/31000063/",
    "id": 31000063,
    "name": "J225555"
  },
  "type": {
    "id_str": "2016",
    "href": "https://crest-tq.eveonline.com/inventory/types/2016/",
    "id": 2016,
    "name": "Planet (Barren)",
    "icons": {
      "32x32": {
        "href": "http://imageserver.eveonline.com/Render/2016_32.png"
      },
      "64x64": {
        "href": "http://imageserver.eveonline.com/Render/2016_64.png"
      },
      "128x128": {
        "href": "http://imageserver.eveonline.com/Render/2016_128.png"
      },
      "256x256": {
        "href": "http://imageserver.eveonline.com/Render/2016_256.png"
      },
      "512x512": {
        "href": "http://imageserver.eveonline.com/Render/2016_512.png"
      }
    }
  },
  "name": "J225555 I"
}
Regions and Region

The regions resource allows an application to read regions.

Regions
Route

/regions/

GET
  • Cache: 1 hour
{
  "totalCount_str": "100",
  "items": [
    {
      "id_str": "11000001",
      "href": "https://crest-tq.eveonline.com/regions/11000001/",
      "id": 11000001,
      "name": "A-R00001"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 100
}
Region
Route

/regions/<regionID:regionIdType>/

Region IDs for K-space start above 10000000, and IDs for W-space start above 11000000.

GET
  • Cache: 1 hour
{
  "description": "It has long been an established fact of civilization [...]",
  "marketBuyOrders": {
    "href": "https://crest-tq.eveonline.com/market/10000042/orders/buy/"
  },
  "constellations": [
    {
      "href": "https://crest-tq.eveonline.com/constellations/20000302/",
      "id": 20000302,
      "id_str": "20000302"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "name": "Metropolis",
  "id_str": "10000042",
  "id": 10000042,
  "marketSellOrders": {
    "href": "https://crest-tq.eveonline.com/market/10000042/orders/sell/"
  }
}
Solar Systems and Solar System

The solar systems resource allows an application to read solar systems.

Solar Systems
Route

/solarsystems/

GET
  • Cache: 1 hour
{
  "totalCount_str": "8035",
  "items": [
    {
      "id_str": "30000001",
      "href": "https://crest-tq.eveonline.com/solarsystems/30000001/",
      "id": 30000001,
      "name": "Tanoo"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 8035
}
Solar System
Route

/solarsystems/<solarsystemID:solarsystemIdType>/

System IDs for K-space start above 3000000, and IDs for W-space start above 31000000.

GET
  • Cache: 1 hour
{
  "stats": {
    "href": "https://crest-tq.eveonline.com/solarsystems/30002290/stats/"
  },
  "planets": [
    {
      "href": "https://crest-tq.eveonline.com/planets/40145807/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145808/"
        }
      ]
    },
    {
      "href": "https://crest-tq.eveonline.com/planets/40145809/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145810/"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ]
    },
    {
      "href": "https://crest-tq.eveonline.com/planets/40145812/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145813/"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ]
    },
    {
      "href": "https://crest-tq.eveonline.com/planets/40145816/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145817/"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ]
    },
    {
      "href": "https://crest-tq.eveonline.com/planets/40145838/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145839/"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ]
    },
    {
      "href": "https://crest-tq.eveonline.com/planets/40145861/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145862/"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ]
    },
    {
      "href": "https://crest-tq.eveonline.com/planets/40145873/",
      "moons": [
        {
          "href": "https://crest-tq.eveonline.com/moons/40145874/"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ]
    }
  ],
  "stargates": [
    {
      "href": "https://crest-tq.eveonline.com/stargates/50000569/"
    },
    {
      "href": "https://crest-tq.eveonline.com/stargates/50000570/"
    }
  ],
  "securityClass": "K4",
  "href": "https://crest-tq.eveonline.com/solarsystems/30002290/",
  "id_str": "30002290",
  "securityStatus": -0.18677988648414612,
  "position": {
    "y": 52867918353394540,
    "x": 149868501775364700,
    "z": 87927918423435500
  },
  "constellation": {
    "href": "https://crest-tq.eveonline.com/constellations/20000336/",
    "id": 20000336,
    "id_str": "20000336"
  },
  "id": 30002290,
  "name": "PXE-RG"
}
Stargate

The stargate resource allows an application to read stargate data.

Stargate
Route

/stargate/<stargateID:stargateIdType>/

GET
  • Cache: 1 hour
{
  "position": {
    "y": 138469908480,
    "x": 2185575260160,
    "z": -2442680524800
  },
  "type": {
    "id_str": "3875",
    "href": "https://crest-tq.eveonline.com/inventory/types/3875/",
    "id": 3875,
    "name": "Stargate (Gallente System)",
    "icons": {
      "32x32": {
        "href": "http://imageserver.eveonline.com/Render/3875_32.png"
      },
      "64x64": {
        "href": "http://imageserver.eveonline.com/Render/3875_64.png"
      },
      "128x128": {
        "href": "http://imageserver.eveonline.com/Render/3875_128.png"
      },
      "256x256": {
        "href": "http://imageserver.eveonline.com/Render/3875_256.png"
      },
      "512x512": {
        "href": "http://imageserver.eveonline.com/Render/3875_512.png"
      }
    }
  },
  "system": {
    "id_str": "30002290",
    "href": "https://crest-tq.eveonline.com/solarsystems/30002290/",
    "id": 30002290,
    "name": "PXE-RG"
  },
  "name": "Stargate (8-MXHA)"
}
Station

The stations resource allows an application to read station information.

Station
Route

/stations/<stationID:stationIdType>/

API version

Station-v1+json

GET
{
  "reprocessingEfficiency": 0.5,
  "officeRentalCost": 599539,
  "maxShipVolumeDockable": 50000000,
  "reprocessingStationsTake": 0.05,
  "system": {
    "href": "https://crest-tq.eveonline.com/solarsystems/30002780/",
    "name": "Muvolailen"
  },
  "services": [
    {
      "serviceName": "repair-facilities"
    },
    {
      "serviceName": "courier-missions"
    },
    {
      "serviceName": "reprocessing-plant"
    },
    {
      "serviceName": "office-rental"
    },
    {
      "serviceName": "loyalty-point-store"
    },
    {
      "serviceName": "storage"
    },
    {
      "serviceName": "news"
    },
    {
      "serviceName": "navy-offices"
    },
    {
      "serviceName": "insurance"
    },
    {
      "serviceName": "market"
    },
    {
      "serviceName": "docking"
    },
    {
      "serviceName": "fitting"
    }
  ],
  "race": {
    "href": "https://crest-tq.eveonline.com/races/1/",
    "id": 1,
    "id_str": "1"
  },
  "owner": {
    "href": "https://crest-tq.eveonline.com/corporations/1000002/"
  },
  "position": {
    "y": 256414064640,
    "x": 1723680890880,
    "z": -60755435520
  },
  "type": {
    "href": "https://crest-tq.eveonline.com/inventory/types/1531/"
  },
  "name": "Muvolailen X - Moon 3 - CBD Corporation Storage"
}
Eve
Alliances and Alliance

The alliances resource allows an application to read alliances data.

Alliances
Route

/alliances/

GET
  • Cache: 30 minutes
{
    "totalCount_str" : 2989,
    "pageCount" : 12,
    "items" : [
        {
            "id_str" : 99000006,
            "shortName" : 666,
            "href" : "https://crest-tq.eveonline.com/alliances/99000006/",
            "id" : 99000006,
            "name" : "Everto Rex Regis"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." }
    ],
    "next" : {
        "href" : "https://crest-tq.eveonline.com/alliances/?page=2"
    },
    "totalCount" : 2989,
    "pageCount_str" : 12
}
Alliance
Route

/alliances/<allianceId:allianceIdType>/

GET
  • Cache: 30 minutes
{
    "startDate" : "2010-11-08T03:34:00",
    "corporationsCount" : 11,
    "description" : ,
    "executorCorporation" : { "..." },
    "corporationsCount_str" : 11,
    "deleted" : false,
    "creatorCorporation" : {
        "name" : "Covenant of the Phoenix",
        "isNPC" : false,
        "href" : "https://crest-tq.eveonline.com/corporations/98001096/",
        "id_str" : 98001096,
        "logo" : {
            "32x32" : {
                "href" : "http://imageserver.eveonline.com/Corporation/98001096_32.png"
            },
            "64x64" : {
                "href" : "http://imageserver.eveonline.com/Corporation/98001096_64.png"
            },
            "128x128" : {
                "href" : "http://imageserver.eveonline.com/Corporation/98001096_128.png"
            },
            "256x256" : {
                "href" : "http://imageserver.eveonline.com/Corporation/98001096_256.png"
            }
        },
        "id" : 98001096
    },
    "url" : ,
    "id_str" : 99000020,
    "creatorCharacter" : {
        "name" : "Jan Shan",
        "isNPC" : false,
        "href" : "https://crest-tq.eveonline.com/characters/681594178/",
        "capsuleer" : {
            "href" : "https://crest-tq.eveonline.com/characters/681594178/capsuleer/"
        },
        "portrait" : {
            "32x32" : {
                "href" : "http://imageserver.eveonline.com/Character/681594178_32.jpg"
            },
            "64x64" : {
                "href" : "http://imageserver.eveonline.com/Character/681594178_64.jpg"
            },
            "128x128" : {
                "href" : "http://imageserver.eveonline.com/Character/681594178_128.jpg"
            },
            "256x256" : {
                "href" : "http://imageserver.eveonline.com/Character/681594178_256.jpg"
            }
        },
        "id" : 681594178,
        "id_str" : 681594178
    },
    "corporations" : [
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
        { "..." }
    ],
    "shortName" : "COTP",
    "id" : 99000020,
    "name" : "Covenant of the Phoenix Alliance"
}
Alliance Tournaments

These resources allows an application to read tournaments with associated series, matches, and teams.

Tournaments
Route

/tournaments/

API version

TournamentCollection-v1+json

GET
  • Cache: 5 minutes
{
  "totalCount_str":"14",
  "items":[
    {
      "href":{
        "href":"https://crest-tq.eveonline.com/tournaments/1/",
        "name":"Alliance Tournament XI"
      }
    },
    { "..."},
    { "..."},
    { "..."},
    {
      "href":{
        "href":"https://crest-tq.eveonline.com/tournaments/14/",
        "name":"Amarr Championships Round Robin"
      }
    }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":14
}
Tournament
Route

/tournaments/<tournamentID:tournamentIdType>/

API version

Tournament-v1+json

GET
  • Cache: ()
{
  "series":{
    "href":"https://crest-tq.eveonline.com/tournaments/14/series/"
  },
  "type":"round-robin",
  "name":"Amarr Championships Round Robin",
  "entries":[
    {
      "teamStats":{
        "href":"https://crest-tq.eveonline.com/tournaments/14/teams/224/"
      },
      "href":"https://crest-tq.eveonline.com/tournaments/teams/224/",
      "name":"Ithica Hawk"
    },
    { "..." },
    { "..." },
    { "..." }
  ]
}
Series
Route

/tournaments/<tournamentID:tournamentIdType>/series/

API version

TournamentSeriesCollection-v1+json

GET
  • Cache: 5 minutes
{
  "totalCount_str":"1",
  "items":[
    {
      "redTeam":{
        "team":{
          "href":"https://crest-tq.eveonline.com/tournaments/teams/197/",
          "teamName":"Barghest flagship"
        },
        "isDecided":true,
        "isBye":false
      },
      "matchesWon":{
        "blueTeam_str":"5",
        "redTeam":3,
        "redTeam_str":"3",
        "blueTeam":5
      },
      "matches":{
        "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/"
      },
      "self":{
        "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/"
      },
      "winner":{
        "isDecided":false,
        "isBye":false
      },
      "loser":{
        "isDecided":false,
        "isBye":false
      },
      "length":10000,
      "length_str":"10000",
      "blueTeam":{
        "team":{
          "href":"https://crest-tq.eveonline.com/tournaments/teams/198/",
          "teamName":"Baalgorn flagship"
        },
        "isDecided":true,
        "isBye":false
      },
      "structure":{

      }
    }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":1
}
  • Not all Series have all json members, the isBye boolean determines if blueTeam or redTeam "team" data is present
{
  "totalCount_str":"27",
  "items":[
    { "..." },
    { "..." },
    {
      "redTeam":{
        "isDecided":true,
        "isBye":true
      },
      "matchesWon":{
        "blueTeam_str":"0",
        "redTeam":0,
        "redTeam_str":"0",
        "blueTeam":0
      },
      "matches":{
        "href":"https://crest-tq.eveonline.com/tournaments/14/series/24/matches/"
      },
      "self":{
        "href":"https://crest-tq.eveonline.com/tournaments/14/series/24/"
      },
      "winner":{
        "team":{
          "href":"https://crest-tq.eveonline.com/tournaments/teams/226/",
          "teamName":"Lysus"
        },
        "isDecided":true,
        "isBye":false
      },
      "loser":{
        "isDecided":true,
        "isBye":true
      },
      "length":1,
      "length_str":"1",
      "blueTeam":{
        "team":{
          "href":"https://crest-tq.eveonline.com/tournaments/teams/226/",
          "teamName":"Lysus"
        },
        "isDecided":true,
        "isBye":false
      },
      "structure":{

      }
    },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":27
}
  • If a series has not completed yet, the isDecided member contained within will determine if a particular team has information present
  • the structure member has information on where a team is headed based on current/previous series results
{  
  "totalCount_str":"126",
  "items":[
    {  
       "redTeam":{  
          "isDecided":false,
          "isBye":false
       },
       "matchesWon":{  
          "blueTeam_str":"0",
          "redTeam":0,
          "redTeam_str":"0",
          "blueTeam":0
       },
       "self":{  
          "href":"https://crest-tq.eveonline.com/tournaments/15/series/32/"
       },
       "winner":{  
          "isDecided":false,
          "isBye":false
       },
       "loser":{  
          "isDecided":false,
          "isBye":false
       },
       "blueTeam":{  
          "isDecided":false,
          "isBye":false
       },
       "structure":{  
          "outgoingLoser":{  
             "href":"https://crest-tq.eveonline.com/tournaments/15/series/66/"
          },
          "outgoingWinner":{  
             "href":"https://crest-tq.eveonline.com/tournaments/15/series/80/"
          },
          "incomingRed":{  
             "linkType":"seriesWinner",
             "href":"https://crest-tq.eveonline.com/tournaments/15/series/0/"
          },
          "incomingBlue":{  
             "linkType":"seriesWinner",
             "href":"https://crest-tq.eveonline.com/tournaments/15/series/1/"
          }
        }
      },
      { "..." },
      { "..." },
      { "..." }
   ],
   "pageCount":1,
   "pageCount_str":"1",
   "totalCount":126
}
Teams
Route

/tournaments/teams/<teamID:teamIdType>/

API version

TournamentTeam-v1+json

GET
  • Cache: ()
{
  "captain":{
    "href":"https://crest-tq.eveonline.com/characters/95465499/",
    "name":"CCP Bartender",
    "icon":{
      "href":"http://imageserver.eveonline.com/Character/95465499_128.jpg"
    }
  },
  "name":"Barghest flagship",
  "iskKilled":1631914,
  "iskKilled_str":"1631914",
  "shipsKilled_str":"3",
  "banFrequency":[

  ],
  "members":{
    "href":"https://crest-tq.eveonline.com/tournaments/teams/197/members/"
  },
  "pilots":[
    {
      "href":"https://crest-tq.eveonline.com/characters/94532560/",
      "name":"CCP Puck",
      "icon":{
        "href":"http://imageserver.eveonline.com/Character/94532560_128.jpg"
      }
    },
    {
      "href":"https://crest-tq.eveonline.com/characters/95465499/",
      "name":"CCP Bartender",
      "icon":{
        "href":"http://imageserver.eveonline.com/Character/95465499_128.jpg"
      }
    },
    {
      "href":"https://crest-tq.eveonline.com/characters/94301268/",
      "name":"CCP Used Ship Saleswoman",
      "icon":{
        "href":"http://imageserver.eveonline.com/Character/94301268_128.jpg"
      }
    },
    {
      "href":"https://crest-tq.eveonline.com/characters/95995047/",
      "name":"Artsan Amruros",
      "icon":{
        "href":"http://imageserver.eveonline.com/Character/95995047_128.jpg"
      }
    }
  ],
  "banFrequencyAgainst":[
    {
      "numBans":1,
      "shipType":{
        "href":"https://crest-tq.eveonline.com/inventory/types/24692/",
        "name":"Abaddon",
        "icon":{
          "href":"http://imageserver.eveonline.com/Type/24692_64.png"
        }
      },
      "numBans_str":"1"
    }
  ],
  "shipsKilled":3
}
TeamStats
Route

/tournaments/<tournamentID:tournamentIdType>/teams/<teamID:teamIdType>/

API version

TournamentTeam-v1+json

GET
  • Cache: ()
  • This endpoint is only accessible via href member from the /tournaments/ endpoint -> “entries” json member, while the above endpoint for /teams/ is accessible via /series/
  • The two endpoints provide the same data, except this also has /matches/ references
{
  "seed_str":"0",
  "banFrequencyAgainst":[
    {
      "numBans":1,
      "shipType":{
        "href":"https://crest-tq.eveonline.com/inventory/types/24692/",
        "name":"Abaddon",
        "icon":{
          "href":"http://imageserver.eveonline.com/Type/24692_64.png"
        }
      },
      "numBans_str":"1"
    }
  ],
  "shipsKilled":3,
  "pilots":[
    {
      "href":"https://crest-tq.eveonline.com/characters/94532560/",
      "name":"CCP Puck",
      "icon":{
        "href":"http://imageserver.eveonline.com/Character/94532560_128.jpg"
      }
    },
    { "..." },
    { "..." },
    { "..." }
  ],
  "matches":[
    {
      "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/0/"
    },
    { "..."},
    { "..."},
    { "..."},
    {
      "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/7/"
    }
  ],
  "iskKilled_str":"1631914",
  "flagshipType":{
    "href":"https://crest-tq.eveonline.com/inventory/types/33820/",
    "name":"Barghest",
    "icon":{
      "href":"http://imageserver.eveonline.com/Type/33820_64.png"
    }
  },
  "shipsKilled_str":"3",
  "name":"Barghest flagship",
  "seed":0,
  "banFrequency":[

  ],
  "members":{
    "href":"https://crest-tq.eveonline.com/tournaments/teams/197/members/"
  },
  "captain":{
    "href":"https://crest-tq.eveonline.com/characters/95465499/",
    "name":"CCP Bartender",
    "icon":{
      "href":"http://imageserver.eveonline.com/Character/95465499_128.jpg"
    }
  },
  "iskKilled":1631914
}
Members
Route

/tournaments/teams/<teamID:teamIdType>/members/

API version

TournamentTeamMemberCollection-v1+json

GET
  • Cache: ()
  • This information is available under the “pilots” json member accessed via either of the above /teams/ endpoints as well
{
  "totalCount_str":"1",
  "items":[
    {
      "self":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/197/members/95465499/"
      },
      "character":{
        "href":"https://crest-tq.eveonline.com/characters/95465499/"
      },
      "name":"CCP Bartender",
      "icon":{
        "href":"http://imageserver.eveonline.com/Character/95465499_128.jpg"
      }
    }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":1
}
Matches
Route

/tournaments/<tournamentID:tournamentIdType>/series/<seriesID:seriesIdType>/matches/

API version

TournamentMatchCollection-v1+json

GET
  • Cache: ()
{
  "totalCount_str":"8",
  "items":[
    {
      "winner":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/197/"
      },
      "stats":{
        "pilots":{
          "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/0/pilotstats/"
        }
      },
      "redTeam":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/197/",
        "teamName":"Barghest flagship"
      },
      "bans":{
        "self":{
          "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/0/bans/"
        },
        "redTeam":[
          {
            "typeBans":[

            ],
            "bannedBy":{
              "href":"https://crest-tq.eveonline.com/tournaments/teams/197/"
            }
          }
        ],
        "blueTeam":[
          {
            "typeBans":[

            ],
            "bannedBy":{
              "href":"https://crest-tq.eveonline.com/tournaments/teams/198/"
            }
          }
        ]
      },
      "finalized":true,
      "series":{
        "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/"
      },
      "tournament":{
        "href":"https://crest-tq.eveonline.com/tournaments/7/"
      },
      "score":{
        "redTeam":100.0,
        "blueTeam":98.0
      },
      "blueTeam":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/198/",
        "teamName":"Baalgorn flagship"
      },
      "inProgress":false
    },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":8
}
Match
Route

/tournaments/<tournamentID:tournamentIdType>/series/<seriesID:seriesIdType>/matches/<matchesID:matchesIdType>/

API version

TournamentMatch-v1+json

GET
  • Cache: ()
  • This data is identical to that obtained in the /matches/ endpoint above
{
  "winner":{
    "href":"https://crest-tq.eveonline.com/tournaments/teams/197/"
  },
  "stats":{
    "pilots":{
      "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/0/pilotstats/"
    }
  },
  "redTeam":{
    "href":"https://crest-tq.eveonline.com/tournaments/teams/197/",
    "teamName":"Barghest flagship"
  },
  "bans":{
    "self":{
      "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/matches/0/bans/"
    },
    "redTeam":[
      {
        "typeBans":[

        ],
        "bannedBy":{
          "href":"https://crest-tq.eveonline.com/tournaments/teams/197/"
        }
      }
    ],
    "blueTeam":[
      {
        "typeBans":[

        ],
        "bannedBy":{
          "href":"https://crest-tq.eveonline.com/tournaments/teams/198/"
        }
      }
    ]
  },
  "finalized":true,
  "series":{
    "href":"https://crest-tq.eveonline.com/tournaments/7/series/0/"
  },
  "tournament":{
    "href":"https://crest-tq.eveonline.com/tournaments/7/"
  },
  "score":{
    "redTeam":100.0,
    "blueTeam":98.0
  },
  "blueTeam":{
    "href":"https://crest-tq.eveonline.com/tournaments/teams/198/",
    "teamName":"Baalgorn flagship"
  },
  "inProgress":false
}
Bans
Route

/tournaments/<tournamentID:tournamentIdType>/series/<seriesID:seriesIdType>/bans/

API version

TournamentTypeBanCollection-v1+json

GET
  • Cache: ()
  • This is identical to the two separate team bans with the associated /series/
{
  "totalCount_str":"2",
  "items":[
    {
      "typeBans":[

      ],
      "bannedBy":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/197/"
      }
    },
    {
      "typeBans":[

      ],
      "bannedBy":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/198/"
      }
    }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":2
}
PilotStats
Route

/tournaments/<tournamentID:tournamentIdType>/series/<seriesID:seriesIdType>/matches/<matchesID:matchesIdType>/pilotstats/

API version

TournamentPilotStatsCollection-v1+json

GET
  • Cache: ()
{
  "totalCount_str":"2",
  "items":[
    {
      "damageDone":1608.52761071,
      "damageReceived":0.0,
      "pilotTournamentStats":{
        "href":"https://crest-tq.eveonline.com/tournaments/7/pilots/94532560/"
      },
      "isDead":false,
      "shipType":{
        "href":"https://crest-tq.eveonline.com/inventory/types/603/",
        "name":"Merlin",
        "icon":{
          "href":"http://imageserver.eveonline.com/Type/603_64.png"
        }
      },
      "team":{
        "href":"https://crest-tq.eveonline.com/tournaments/teams/197/"
      },
      "pilot":{
        "href":"https://crest-tq.eveonline.com/characters/94532560/",
        "name":"CCP Puck",
        "icon":{
          "href":"http://imageserver.eveonline.com/Character/94532560_128.jpg"
        }
      }
    },
    { "..." }
  ],
  "pageCount":1,
  "pageCount_str":"1",
  "totalCount":2
}
Bloodlines

The bloodlines resource allows an application to read information on the various bloodlines.

Route

/bloodlines/

API version

BloodlineCollection-v2+json

GET
  • Cache: 5 minutes
{
    "totalCount_str": "15",
    "items": [
        {
            "race": {
                "href": "https://crest-tq.eveonline.com/races/1/"
                },
            "description": "The Deteis are regarded as the face of leadership in Caldari society. Commonly possessed of sharp, ordered minds and articulate tongues, they are mostly found in positions of authority within military and political spheres. Driven by the cultural premise that the good of the whole must come before the needs of the individual, they have made the responsibility of upholding the integrity of the entire Caldari State their own.",
            "name": "Deteis",
            "href": "https://crest-tq.eveonline.com/bloodlines/1/",
            "id_str": "1",
            "id": 1,
            "icon": {
                "href": "icon_bloodline_deteis"
                }
        },
        {
            "race": {
                "href": "https://crest-tq.eveonline.com/races/1/"
                },
            "description": "Whether engaged in trade or combat, the Civire are absolute masters of focused aggression. Highly competitive individuals, they thrive under chaotic circumstances and frenetic activity. They are often employed in highly stressful industrial and military professions due to an innate ability to think quickly on their feet and remain composed under pressure.",
            "name": "Civire",
            "href": "https://crest-tq.eveonline.com/bloodlines/2/",
            "id_str": "2",
            "id": 2,
            "icon": {
                "href": "icon_bloodline_civire"
                }
        },
        {
            "race": {
                "href": "https://crest-tq.eveonline.com/races/2/"
                },
            "description": "Widely respected as some of the cluster's most innovative thinkers, the Sebiestor are an ingenious people with a natural fondness for engineering. For the last millennium they have pioneered advances in applied sciences, despite laboring under chronic material shortages. Masters of deriving solutions from impossible circumstances, Sebiestor engineers believe they can build anything, with anything, out of anything.",
            "name": "Sebiestor",
            "href": "https://crest-tq.eveonline.com/bloodlines/3/",
            "id_str": "3",
            "id": 3,
            "icon": {
                "href": "icon_bloodline_sebiestor"
                }
        },
        {"..."},
        {"..."},
        {"..."}
    ],
    "pageCount": 1,
    "pageCount_str": "1",
    "totalCount": 15
}
Dogma Attributes and Attribute

The dogma attributes resource allows an application to read dogma attributes.

Attributes
Route

/dogma/attributes/

GET
  • Cache: 1 hour
{
  "totalCount_str": "1939",
  "pageCount": 4,
  "items": [
    {
      "id_str": "2",
      "href": "https://crest-tq.eveonline.com/dogma/attributes/2/",
      "id": 2,
      "name": "isOnline"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "next": {
    "href": "https://crest-tq.eveonline.com/dogma/attributes/?page=2"
  },
  "totalCount": 1939,
  "pageCount_str": "4"
}
Attribute
Route

/dogma/attributes/<attributeID:attributeIdType>/

GET
  • Cache: 1 hour
{
  "description": "Factor by which topspeed increases.",
  "unitID_str": "124",
  "displayName": "Maximum Velocity Bonus",
  "name": "speedFactor",
  "iconID": 1389,
  "unitID": 124,
  "iconID_str": "1389",
  "id": 20,
  "id_str": "20",
  "highIsGood": true,
  "stackable": false,
  "defaultValue": 1,
  "published": true
}
Dogma Effects and Effect

The dogma effects resource allows an application to read dogma effects.

Effects
Route

/dogma/effects/

GET
  • Cache: 1 hour
{
  "totalCount_str": "3896",
  "pageCount": 8,
  "items": [
    {
      "id_str": "4",
      "href": "https://crest-tq.eveonline.com/dogma/effects/4/",
      "id": 4,
      "name": "shieldBoosting"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "next": {
    "href": "https://crest-tq.eveonline.com/dogma/effects/?page=2"
  },
  "totalCount": 3896,
  "pageCount_str": "8"
}
Effect
Route

/dogma/effects/<effectID:effectIdType>/

GET
  • Cache: 1 hour
{
  "effectCategory_str": "0",
  "postExpression_str": "501",
  "isAssistance": false,
  "description": "",
  "isOffensive": false,
  "disallowAutoRepeat": false,
  "isWarpSafe": false,
  "preExpression_str": "500",
  "electronicChance": false,
  "rangeChance": false,
  "effectCategory": 0,
  "id_str": "61",
  "postExpression": 501,
  "published": false,
  "preExpression": 500,
  "displayName": "",
  "id": 61,
  "name": "agilityBonus"
}
Incursions

Incursions resource allows an application to read incursions data.

Incursions Prices
Route

/incursions/

GET
  • Cache: 5 minutes
{
  "totalCount_str": "5",
  "items": [
    {
      "aggressorFactionID": {
        "id_str": "500019",
        "href": "https://crest-tq.eveonline.com/alliances/500019/",
        "id": 500019,
        "name": "Sansha's Nation"
      },
      "stagingSolarSystem": {
        "id_str": "30004434",
        "href": "https://crest-tq.eveonline.com/solarsystems/30004434/",
        "id": 30004434,
        "name": "C-0ND2"
      },
      "influence": 0,
      "incursionType": "Incursion",
      "state": "Withdrawing",
      "hasBoss": false,
      "infestedSolarSystems": [
        {
          "id_str": "30004425",
          "href": "https://crest-tq.eveonline.com/solarsystems/30004425/",
          "id": 30004425,
          "name": "Z-PNIA"
        },
        {
          "id_str": "30004426",
          "href": "https://crest-tq.eveonline.com/solarsystems/30004426/",
          "id": 30004426,
          "name": "OCU4-R"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." }
      ],
      "constellation": {
        "id_str": "20000647",
        "href": "https://crest-tq.eveonline.com/constellations/20000647/",
        "id": 20000647,
        "name": "C45-9Y"
      }
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
    ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 5
}
Industry Facilities and Facility

This returns all publicly accessible facilities, including player built outposts in nullsec.

Facilities
Route

/industry/facilities/

API version

IndustryFacilityCollection-v1+json

GET
  • Cache: 1 hour
{
  "totalCount_str": "6328",
  "items": [
    {
      "facilityID": 60003466,
      "solarSystem": {
        "id": 30000142,
        "id_str": "30000142"
      },
      "name": "Jita IV - Moon 4 - Caldari Business Tribunal Bureau Offices",
      "region": {
        "id": 10000002,
        "id_str": "10000002"
      },
      "tax": 0.1,
      "facilityID_str": "60003466",
      "owner": {
        "id": 1000033,
        "id_str": "1000033"
      },
      "type": {
        "id": 1529,
        "id_str": "1529"
      }
    },
    {
      "facilityID": 60003469,
      "solarSystem": {
        "id": 30000142,
        "id_str": "30000142"
      },
      "name": "Jita IV - Caldari Business Tribunal Information Center",
      "region": {
        "id": 10000002,
        "id_str": "10000002"
      },
      "tax": 0.1,
      "facilityID_str": "60003469",
      "owner": {
        "id": 1000033,
        "id_str": "1000033"
      },
      "type": {
        "id": 3872,
        "id_str": "3872"
      }
    },
    {
      "facilityID": 61000398,
      "solarSystem": {
        "id": 30004357,
        "id_str": "30004357"
      },
      "name": "CS-ZGD VIII - We Love Entosis",
      "region": {
        "id": 10000055,
        "id_str": "10000055"
      },
      "facilityID_str": "61000398",
      "owner": {
        "id": 98113098,
        "id_str": "98113098"
      },
      "type": {
        "id": 21645,
        "id_str": "21645"
      }
    },
    { "..." },
    { "..." },
    { "..." },
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 6328
}
Insurance prices

Insurance prices resource allows an application to read insurance prices data.

Insurance Prices
Route

/insuranceprices/

GET
  • Cache: 1 hour
{
  "totalCount_str": "463",
  "items": [
    {
      "type": {
        "id_str": "582",
        "href": "https://crest-tq.eveonline.com/inventory/types/582/",
        "id": 582,
        "name": "Bantam"
      },
      "insurance": [
        {
          "payout": 209809.5,
          "cost": 20980.95,
          "level": "Basic"
        },
        {
          "payout": 251771.4,
          "cost": 41961.9,
          "level": "Standard"
        },
        {
          "payout": 293733.3,
          "cost": 62942.85,
          "level": "Bronze"
        },
        {
          "payout": 335695.2,
          "cost": 83923.8,
          "level": "Silver"
        },
        {
          "payout": 377657.10000000003,
          "cost": 104904.75,
          "level": "Gold"
        },
        {
          "payout": 419619,
          "cost": 125885.7,
          "level": "Platinum"
        }
      ]
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
    ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 463
}
Inventory

These resources allows an application to read item types, groups and categories.

Types
Route

/inventory/types/

API version

ItemTypeCollection-v1+json

GET
  • Cache: 1 hour
{
  "totalCount_str": "28370",
  "pageCount": 29,
  "items": [
    {
      "id_str": "0",
      "href": "https://crest-tq.eveonline.com/inventory/types/0/",
      "id": 0,
      "name": "#System"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." },
   ],
  "next": {
    "href": "https://crest-tq.eveonline.com/inventory/types/?page=2"
  },
  "totalCount": 28370,
  "pageCount_str": "29"
}
Type
Route

/inventory/types/<typeID:typeIdType>/

API version

ItemType-v3+json

GET
  • Cache: 1 hour
{
  "capacity": 0,
  "description": "This upgrade increases the ore resources available in a system.",
  "portionSize_str": "1",
  "iconID": 3948,
  "portionSize": 1,
  "iconID_str": "3948",
  "volume": 5000,
  "dogma": {
    "attributes": [
      {
        "attribute": {
          "id_str": "4",
          "href": "https://crest-tq.eveonline.com/dogma/attributes/4/",
          "id": 4,
          "name": "mass"
        },
        "value": 1000
      },
      { "..." },
      { "..." },
      { "..." },
      { "..." },
    ]
  },
  "radius": 1,
  "id_str": "2040",
  "published": true,
  "mass": 1000,
  "id": 2040,
  "name": "Ore Prospecting Array 1"
}
Groups
Route

/inventory/groups/

API version

ItemGroupCollection-v1+json

GET
  • Cache: 1 hour
{
    "totalCount_str": "1187",
    "pageCount": 2,
    "items": [
        {
            "id_str": "0",
            "href": "https://crest-tq.eveonline.com/inventory/groups/0/",
            "id": 0,
            "name": "#System"
        },
        {
            "id_str": "1",
            "href": "https://crest-tq.eveonline.com/inventory/groups/1/",
            "id": 1,
            "name": "Character"
        },
        {
            "id_str": "2",
            "href": "https://crest-tq.eveonline.com/inventory/groups/2/",
            "id": 2,
            "name": "Corporation"
        },
        {
            "id_str": "3",
            "href": "https://crest-tq.eveonline.com/inventory/groups/3/",
            "id": 3,
            "name": "Region"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ],
    "next": {
    "href": "https://crest-tq.eveonline.com/inventory/groups/?page=2"
    },
    "totalCount": 1187,
    "pageCount_str": "2"
}
Group
Route

/inventory/groups/<groupID:groupIDType>/

API version

ItemGroup-v1+json

GET
  • Cache: 1 hour
{
    "category": {
        "href": "https://crest-tq.eveonline.com/inventory/categories/6/"
    },
    "name": "Cruiser",
    "id_str": "26",
    "published": true,
    "id": 26,
    "types": [
        {
            "id_str": "17922",
            "href": "https://crest-tq.eveonline.com/inventory/types/17922/",
            "id": 17922,
            "name": "Ashimmu"
        },
        {
            "id_str": "11011",
            "href": "https://crest-tq.eveonline.com/inventory/types/11011/",
            "id": 11011,
            "name": "Guardian-Vexor"
        },
        {
            "id_str": "34445",
            "href": "https://crest-tq.eveonline.com/inventory/types/34445/",
            "id": 34445,
            "name": "Vexor Quafe Edition"
        },
        {
            "id_str": "33645",
            "href": "https://crest-tq.eveonline.com/inventory/types/33645/",
            "id": 33645,
            "name": "Caracal Wiyrkomi Edition"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ],
      "description": ""
}     
Categories
Route

/inventory/categories/

API version

ItemCategoryCollection-v1+json

GET
  • Cache: 1 hour
{
    "totalCount_str": "42",
    "items": [
        {
            "id_str": "0",
            "href": "https://crest-tq.eveonline.com/inventory/categories/0/",
            "id": 0,
            "name": "#System"
        },
        {
            "id_str": "1",
            "href": "https://crest-tq.eveonline.com/inventory/categories/1/",
            "id": 1,
            "name": "Owner"
        },
        {
            "id_str": "2",
            "href": "https://crest-tq.eveonline.com/inventory/categories/2/",
            "id": 2,
            "name": "Celestial"
        },
        {
            "id_str": "3",
            "href": "https://crest-tq.eveonline.com/inventory/categories/3/",
            "id": 3,
            "name": "Station"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ],
    "pageCount": 1,
    "pageCount_str": "1",
    "totalCount": 42
}
Category
Route

/inventory/categories/<categoryID:categoryIDType>/

API version

ItemCategory-v1+json

GET
  • Cache: 1 hour
{
    "name": "Ship",
    "id_str": "6",
    "id": 6,
    "groups": [
        {
            "id_str": "513",
            "href": "https://crest-tq.eveonline.com/inventory/groups/513/",
            "id": 513,
            "name": "Freighter"
        },
        {
            "id_str": "898",
            "href": "https://crest-tq.eveonline.com/inventory/groups/898/",
            "id": 898,
            "name": "Black Ops"
        },
        {
            "id_str": "1283",
            "href": "https://crest-tq.eveonline.com/inventory/groups/1283/",
            "id": 1283,
            "name": "Expedition Frigate"
        },
        {
            "id_str": "900",
            "href": "https://crest-tq.eveonline.com/inventory/groups/900/",
            "id": 900,
            "name": "Marauder"
        },
        { "..." },
        { "..." },
        { "..." },
        { "..." },
      ],
    "published": true
}
Loyalty Point Store

The loyaltystore resource allows an application to read information on the loyalty point store for a corporation.

Route

/corporations/<corporationID:corporationIdType>/loyaltystore/

API version

LoyaltyStoreOffersCollection-v1+json

GET
{
  "totalCount_str": "151",
  "items": [
    {
      "iskCost": 65000000,
      "lpCost_str": "65000",
      "iskCost_str": "65000000",
      "requiredItems": [],
      "lpCost": 65000,
      "item": {
        "id_str": "10226",
        "href": "https://crest-tq.eveonline.com/inventory/types/10226/",
        "id": 10226,
        "name": "Social Adaptation Chip - Improved"
      },
      "id_str": "3437",
      "quantity_str": "1",
      "id": 3437,
      "quantity": 1
    },
    {
      "iskCost": 0,
      "lpCost_str": "250000",
      "iskCost_str": "0",
      "requiredItems": [
        {
          "item": {
            "id_str": "24698",
            "href": "https://crest-tq.eveonline.com/inventory/types/24698/",
            "id": 24698,
            "name": "Drake"
          },
          "quantity_str": "1",
          "quantity": 1
        },
        {
          "item": {
            "id_str": "17646",
            "href": "https://crest-tq.eveonline.com/inventory/types/17646/",
            "id": 17646,
            "name": "Caldari CU-1 Nexus Chip"
          },
          "quantity_str": "2",
          "quantity": 2
        }
      ],
      "lpCost": 250000,
      "item": {
        "id_str": "33153",
        "href": "https://crest-tq.eveonline.com/inventory/types/33153/",
        "id": 33153,
        "name": "Drake Navy Issue"
      },
      "id_str": "15779",
      "quantity_str": "1",
      "id": 15779,
      "quantity": 1
    },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 151
}
Market

The market resource allows an application to read region based market data.

Valid for base API version: application/vnd.ccp.eve.Api-v5+json

Market Types
API version

MarketTypeCollection-v1+json

Route

/market/types/

GET
  • Cache: 5 minutes
{
  "totalCount_str": "11060",
  "pageCount": 12,
  "items": [
     {
        "marketGroup": {
          "href": "https://crest-tq.eveonline.com/market/groups/516/",
          "id": 516,
          "id_str": "516"
        },
        "type": {
          "id_str": "18",
          "href": "https://crest-tq.eveonline.com/inventory/types/18/",
          "id": 18,
          "name": "Plagioclase",
          "icon": {
            "href": "http://imageserver.eveonline.com/Type/18_64.png"
          }
        },
        "id": 18,
        "id_str": "18"
     },
     { "..." }
  ],
  "next": {
     "href": "https://crest-tq.eveonline.com/market/types/?page=2"
  },
  "totalCount": 11060,
  "pageCount_str": "12"
}
Market Type
API version

MarketTypeCollection-v1+json

Route

/market/types/<typeId:typeIdType>/

GET
  • Cache: 5 minutes
{
  "marketGroup": {
    "href": "https://crest-tq.eveonline.com/market/groups/516/",
    "id": 516,
    "id_str": "516"
  },
  "type": {
    "id_str": "18",
    "href": "https://crest-tq.eveonline.com/inventory/types/18/",
    "id": 18,
    "name": "Plagioclase",
    "icon": {
      "href": "http://imageserver.eveonline.com/Type/18_64.png"
    }
  },
  "id": 18,
  "id_str": "18"
}
Market Prices
API version

MarketTypePriceCollection-v1+json

Route

/market/prices/

GET
  • Cache: 23 hours
{
  "totalCount_str": "10134",
  "items": [
    {
      "adjustedPrice": 306988.09,
      "averagePrice": 306292.67,
      "type": {
        "id_str": "32772",
        "href": "https://crest-tq.eveonline.com/inventory/types/32772/",
        "id": 32772,
        "name": "Medium Ancillary Shield Booster"
      }
    },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 10134
}
Market Groups
API version

MarketGroupCollection-v1+json

Route

/market/groups/

GET
  • Cache: 5 minutes
{
  "totalCount_str": "2103",
  "items": [
    {
      "name": "Blueprints",
      "href": "https://crest-tq.eveonline.com/market/groups/2/",
      "id_str": "2",
      "id": 2,
      "types": {
        "href": "https://crest-tq.eveonline.com/market/types/?group=https://crest-tq.eveonline.com/market/groups/2/"
      },
      "description": "Blueprints are data items used in industry for manufacturing, research and invention jobs"
    },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 2103
}  
Market Group
API version

MarketGroup-v1+json

Route

/market/groups/<groupId:groupIdType>/

GET
  • Cache: 5 minutes
{
  "name": "Blueprints",
  "href": "https://crest-tq.eveonline.com/market/groups/2/",
  "id_str": "2",
  "id": 2,
  "types": {
    "href": "https://crest-tq.eveonline.com/market/types/?group=https://crest-tq.eveonline.com/market/groups/2/"
  },
  "description": "Blueprints are data items used in industry for manufacturing, research and invention jobs"
}
Market Orders
Sell and Buy Orders
API version

MarketOrderCollection-v1+json

Route

/market/<regionId:regionIdType>/orders/<"sell"|"buy">/<crest-type-url>/

Either sell or buy may be used.

GET
  • Cache: 5 minutes
  • Example for Tritanium (34) sell orders in Forge (10000002):

/market/10000002/orders/sell/?type=https://crest-tq.eveonline.com/inventory/types/34/

{
  "totalCount_str": "197",
  "items": [
    {
      "volume_str": "531",
      "buy": false,
      "issued": "2016-05-01T13:48:33",
      "price": 9.99,
      "volumeEntered": 45500,
      "minVolume": 1,
      "volume": 531,
      "range": "region",
      "href": "https://crest-tq.eveonline.com/market/10000002/orders/4523489059/",
      "duration_str": "90",
      "location": {
        "id_str": "60005593",
        "href": "https://crest-tq.eveonline.com/universe/locations/60005593/",
        "id": 60005593,
        "name": "Itamo VIII - Core Complexion Inc. Factory"
      }
    },
    { "..." },
    { "..." },
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 197
}
Bulk Market Orders

“[This] resource can be found under /market//orders/all/ and returns all market orders for a given region paginated, with up to [30,000] results per page. For busy regions such as The Forge, you would expect around [10] pages of data based on the current trading volume.” - CCP FoxFour

API version

MarketOrderCollectionSlim-v1+json

Route

/market/<regionId>/orders/<all|crest-type-url>/

Either all or the crest-type-url can be used.

GET
  • Cache: 5 minutes
  • Example for Forge (10000002):

/market/10000002/orders/all/

{
  "items": [
    {
      "buy": false,
      "issued": "2016-06-07T11:09:56",
      "price": 50000,
      "volume": 1,
      "duration": 365,
      "id": 911203054,
      "minVolume": 1,
      "volumeEntered": 1,
      "range": "region",
      "stationID": 60000274,
      "type": 967
    },
    { "..." },
    { "..." },
  ],
  "totalCount": 254775,
  "next": {
    "href": "https://crest-tq.eveonline.com/market/10000002/orders/all/?page=2"
  },
  "pageCount": 9
}
Market History
API version

MarketTypeHistoryCollection-v1+json

Route

/market/<regionId:regionIdType>/history/<crest-type-url>/

GET
  • Cache: 30 minutes
  • Sorting: From oldest to newest (with the last item being yesterday).
  • Example for Tritanium (34) in Forge (10000002):

/market/10000002/history/?type=https://crest-tq.eveonline.com/inventory/types/34/

{
  "totalCount_str": "412",
  "items": [
    {
      "volume_str": "16276782035",
      "orderCount": 2267,
      "lowPrice": 5.11,
      "highPrice": 5.27,
      "avgPrice": 5.25,
      "volume": 16276782035,
      "orderCount_str": "2267",
      "date": "2015-05-01T00:00:00"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 412
}
NPC Corporations

The npccorps resource allows an application to read information on the various NPC Corporations.

NPC Corporations
Route

/corporations/npccorps/

API version

NPCCorporationsCollection-v1+json

GET
  • Cache: 1 hour
{
  "totalCount_str": "239",
  "items": [
    {
      "description": "The internal corporation used for characters in graveyard.",
      "headquarters": {
        "href": "https://crest-tq.eveonline.com/stations/60000001/",
        "name": ""
      },
      "href": "https://crest-tq.eveonline.com/corporations/1000001/",
      "id_str": "1000001",
      "loyaltyStore": {
        "href": "https://crest-tq.eveonline.com/corporations/1000001/loyaltystore/"
      },
      "ticker": "666",
      "id": 1000001,
      "name": "Doomheim"
    },
    {
      "description": "The CBD Corporation is one of the biggest exporters/importers in Caldari space. The corporation has established trade links far and wide, with a huge amount of goods in constant fluctuation.",
      "headquarters": {
        "href": "https://crest-tq.eveonline.com/stations/60000004/",
        "name": "Muvolailen X - Moon 3 - CBD Corporation Storage"
      },
      "href": "https://crest-tq.eveonline.com/corporations/1000002/",
      "id_str": "1000002",
      "loyaltyStore": {
        "href": "https://crest-tq.eveonline.com/corporations/1000002/loyaltystore/"
      },
      "ticker": "CBDC",
      "id": 1000002,
      "name": "CBD Corporation"
    },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 239
}
Opportunities Tasks and Opportunities Groups
Opportunities Tasks
Route

/opportunities/tasks/

GET
  • Cache: 1 hour
{
  "totalCount_str": "57",
  "items": [
    {
      "notificationText": "Completed<br>Mine Ore",
      "id_str": "2",
      "description": "Wait for your mining laser cycle to finish.",
      "name": "Mine Ore",
      "id": 2
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 57
}
Opportunities Task
Route

/opportunities/tasks/<opportunitiesTaskId:opportunitiesTaskIdType>/

GET
  • Cache: 1 hour
{
  "notificationText": "Completed<br>Mine Ore",
  "id_str": "2",
  "description": "Wait for your mining laser cycle to finish.",
  "name": "Mine Ore",
  "id": 2
}
Opportunities Groups
Route

/opportunities/groups/

GET
  • Cache: 1 hour
{
  "totalCount_str": "20",
  "items": [
    {
      "groupConnections": [
        {
          "href": "https://crest-tq.eveonline.com/opportunities/groups/101/",
          "id": 101,
          "id_str": "101"
        }
      ],
      "description": "Awareness of what is going on around you in space is very important to a capsuleer. Using your camera is key.",
      "notificationText": "Completed:<br>Take a Look Around",
      "id_str": "100",
      "achievementTasks": [
        {
          "href": "https://crest-tq.eveonline.com/opportunities/tasks/61/",
          "id": 61,
          "id_str": "61"
        },
        {
          "href": "https://crest-tq.eveonline.com/opportunities/tasks/60/",
          "id": 60,
          "id_str": "60"
        },
        {
          "href": "https://crest-tq.eveonline.com/opportunities/tasks/63/",
          "id": 63,
          "id_str": "63"
        },
        {
          "href": "https://crest-tq.eveonline.com/opportunities/tasks/64/",
          "id": 64,
          "id_str": "64"
        }
      ],
      "id": 100,
      "name": "Take a Look Around"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 20
}
Opportunities Group
Route

/opportunities/groups/<opportunitiesGroupId:opportunitiesGroupIdType>/

GET
  • Cache: 1 hour
{
  "groupConnections": [
    {
      "href": "https://crest-tq.eveonline.com/opportunities/groups/102/",
      "id": 102,
      "id_str": "102"
    }
  ],
  "description": "As a capsuleer, you are your ship. Learning to fly it is essential.",
  "notificationText": "Completed:<br>Let's Get Moving",
  "id_str": "101",
  "achievementTasks": [
    {
      "href": "https://crest-tq.eveonline.com/opportunities/tasks/23/",
      "id": 23,
      "id_str": "23"
    },
    {
      "href": "https://crest-tq.eveonline.com/opportunities/tasks/38/",
      "id": 38,
      "id_str": "38"
    }
  ],
  "id": 101,
  "name": "Let's Get Moving"
}
Races

The races resource allows an application to read information on all four of the races.

Route

/races/

API version

RaceCollection-v3+json

GET
  • Cache: 5 minutes
{
    "totalCount_str": "4",
    "items": [
            {
            "name": "Gallente",
            "href": "https://crest-tq.eveonline.com/races/8/",
            "id_str": "8",
            "icon": {
                "64x64": {
                "href": "http://imageserver.eveonline.com//Alliance/500004_64.png"
                },
                "128x128": {
                "href": "http://imageserver.eveonline.com//Alliance/500004_128.png"
                },
                "32x32": {
                "href": "http://imageserver.eveonline.com//Alliance/500004_32.png"
                }
            },
            "id": 8,
            "description": "Champions of liberty and defenders of the downtrodden, the Gallente play host to the only true democracy in New Eden. Some of the most progressive leaders, scientists, and businessmen of the era have emerged from its diverse peoples. A pioneer of artificial intelligence, the Federation relies heavily on drones and other automated systems. This is not to detract from the skill of their pilots, though: the Gallente Federation is known for producing some of the best and bravest the universe has to offer."
            },
            {
            "name": "Caldari",
            "href": "https://crest-tq.eveonline.com/races/1/",
            "id_str": "1",
            "icon": {
                "64x64": {
                "href": "http://imageserver.eveonline.com//Alliance/500001_64.png"
                },
                "128x128": {
                "href": "http://imageserver.eveonline.com//Alliance/500001_128.png"
                },
                "32x32": {
                "href": "http://imageserver.eveonline.com//Alliance/500001_32.png"
                }
            },
            "id": 1,
            "description": "Founded on the tenets of patriotism and hard work that carried its ancestors through hardships on an inhospitable homeworld, the Caldari State is today a corporate dictatorship, led by rulers who are determined to see it return to the meritocratic ideals of old. Ruthless and efficient in the boardroom as well as on the battlefield, the Caldari are living emblems of strength, persistence, and dignity."
            },
            {
            "name": "Minmatar",
            "href": "https://crest-tq.eveonline.com/races/2/",
            "id_str": "2",
            "icon": {
                "64x64": {
                "href": "http://imageserver.eveonline.com//Alliance/500002_64.png"
                },
                "128x128": {
                "href": "http://imageserver.eveonline.com//Alliance/500002_128.png"
                },
                "32x32": {
                "href": "http://imageserver.eveonline.com//Alliance/500002_32.png"
                }
            },
            "id": 2,
            "description": "Once a thriving tribal civilization, the Minmatar were enslaved by the Amarr Empire for more than 700 years until a massive rebellion freed most, but not all, of those held in servitude. The Minmatar people today are resilient, ingenious, and hard-working. Many of them believe that democracy, though it has served them well for a long time, can never restore what was taken from them so long ago. For this reason they have formed a government truly reflective of their tribal roots. They will forever resent the Amarrians, and yearn for the days before the Empire's accursed ships ever reached their home skies."
            },
            {
            "name": "Amarr",
            "href": "https://crest-tq.eveonline.com/races/4/",
            "id_str": "4",
            "icon": {
                "64x64": {
                "href": "http://imageserver.eveonline.com//Alliance/500003_64.png"
                },
                "128x128": {
                "href": "http://imageserver.eveonline.com//Alliance/500003_128.png"
                },
                "32x32": {
                "href": "http://imageserver.eveonline.com//Alliance/500003_32.png"
                }
            },
            "id": 4,
            "description": "The Amarr Empire is the largest and oldest of the four empires. Ruled by a mighty Empress, this vast theocratic society is supported by a broad foundation of slave labor. Amarr citizens tend to be highly educated and fervent individuals, and as a culture Amarr adheres to the basic tenet that what others call slavery is in fact one step on a indentured person's spiritual path toward fully embracing their faith. Despite several setbacks in recent history, the Empire remains arguably the most stable and militarily powerful nation-state in New Eden."
            }
        ],
    "pageCount": 1,
    "pageCount_str": "1",
    "totalCount": 4
}
Sovereignty Structures and Sovereignty Campaigns

Shows sovereignty data for structures or campaigns.

Sovereignty Structures
Route

/sovereignty/structures/

GET
  • Cache: 5 minutes
{
  "totalCount_str": "5872",
  "items": [
    {
      "alliance": {
        "id_str": "1988009451",
        "href": "https://crest-tq.eveonline.com/alliances/1988009451/",
        "id": 1988009451,
        "name": "Curatores Veritatis Alliance"
      },
      "vulnerabilityOccupancyLevel": 4.5,
      "structureID_str": "866802670",
      "structureID": 866802670,
      "vulnerableStartTime": "2016-05-04T18:00:00",
      "solarSystem": {
        "id_str": "30001235",
        "href": "https://crest-tq.eveonline.com/solarsystems/30001235/",
        "id": 30001235,
        "name": "BR-N97"
      },
      "vulnerableEndTime": "2016-05-04T22:00:00",
      "type": {
        "id_str": "32226",
        "href": "https://crest-tq.eveonline.com/inventory/types/32226/",
        "id": 32226,
        "name": "Territorial Claim Unit"
      }
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
    ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 5872
}
Sovereignty Campaigns
Route

/sovereignty/campaigns/

GET
  • Cache: 30 seconds
{
  "totalCount_str": "198",
  "items": [
    {
      "eventType_str": "3",
      "campaignID": 21759,
      "eventType": 3,
      "sourceSolarsystem": {
        "id_str": "30000296",
        "href": "https://crest-tq.eveonline.com/solarsystems/30000296/",
        "id": 30000296,
        "name": "ZLZ-1Z"
      },
      "attackers": {
        "score": 0.4
      },
      "campaignID_str": "21759",
      "sourceItemID": 60014907,
      "startTime": "2016-05-04T10:37:59",
      "sourceItemID_str": "60014907",
      "defender": {
        "defender": {
          "id_str": "1354830081",
          "href": "https://crest-tq.eveonline.com/alliances/1354830081/",
          "id": 1354830081,
          "name": "Goonswarm Federation"
        },
        "score": 0.6
      },
      "constellation": {
        "id_str": "20000042",
        "href": "https://crest-tq.eveonline.com/constellations/20000042/",
        "id": 20000042,
        "name": "0-8MWQ"
      }
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
    ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 198
}
Time

The time resource allows an application to read the current EVE time with 10 second precision.

Route

/time/

GET
  • Cache: 10 seconds
{
  "time": "2016-06-06T22:00:00"
}
Wars, War, and War Killmails

The wars resource allows an application to read wars data.

Wars
Route

/wars/

GET
  • Cache: 1 day
{
  "totalCount_str": "477886",
  "pageCount": 239,
  "items": [
    {
      "href": "https://crest-tq.eveonline.com/wars/1/",
      "id": 1,
      "id_str": "1"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
   ],
  "next": {
    "href": "https://crest-tq.eveonline.com/wars/?page=2"
  },
  "totalCount": 477886,
  "pageCount_str": "239"
}
War
Route

/wars/<warID:warIdType>/

GET
  • Cache: 1 hour
{
  "id": 42000,
  "timeFinished": "2007-10-29T14:29:00",
  "openForAllies": false,
  "timeStarted": "2007-10-22T13:36:00",
  "allyCount": 3,
  "timeDeclared": "2007-10-21T13:36:00",
  "aggressor": {
    "shipsKilled": 0,
    "shipsKilled_str": "0",
    "name": "Privateer Alliance",
    "href": "https://crest-tq.eveonline.com/alliances/753644383/",
    "id_str": "753644383",
    "icon": {
      "href": "http://imageserver.eveonline.com/Alliance/753644383_128.png"
    },
    "id": 753644383,
    "iskKilled": 0.0
  },
  "mutual": false,
  "allyCount_str": "3",
  "killmails": "https://crest-tq.eveonline.com/wars/42000/killmails/all/",
  "id_str": "42000",
  "defender": {
    "shipsKilled": 0,
    "shipsKilled_str": "0",
    "name": "Ka-Tet",
    "href": "https://crest-tq.eveonline.com/alliances/389924442/",
    "id_str": "389924442",
    "icon": {
      "href": "http://imageserver.eveonline.com/Alliance/389924442_128.png"
    },
    "id": 389924442,
    "iskKilled": 0.0
  },
  "allies":[  
      {  
         "id_str":"98414924",
         "href":"https://crest-tq.eveonline.com/corporations/98414924/",
         "id":98414924,
         "name":"Mordu's Foreign Legion",
         "icon":{  
            "href":"http://imageserver.eveonline.com/Corporation/98414924_128.png"
         }
      },
      { "..." },
      { "..." }
   ]
  }
War Killmails
Routes

/wars/<warID:warIdType>/killmails/all

GET
  • Cache: 1 hour
{
  "totalCount": 75,
  "totalCount_str": "75",
  "pageCount": 3,
  "pageCount_str": "3",
  "items": [
    {
       "href":"https://crest-tq.eveonline.com/killmails/55818219/53b4a9c6c8119eacafd407977ae7a93033b081c6/",
       "id":55818219,
       "id_str":"55818219"
    },
    { "..." },
    { "..." },
    { "..." },
    { "..." }
   ],
  "next": {
    "href": "https://crest-tq.eveonline.com/wars/505250/killmails/all/?page=2"
  }
}
Fleet
Fleet

The fleet resource provides details about a fleet. The fleet resource, along with all its children resources, may only be accessed with an access token belonging to the fleet boss.

  • Route: URL must be provided by user. It can be obtained in the client, under the fleet menu, by using the Copy External Fleet Link option. The URL will be copied to the clipboard.

    The Copy External Fleet Link option in the fleet menu

  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/

GET
  • Cache: 5 seconds
  • Scope: fleetRead
Sample Response

Media type: application/vnd.ccp.eve.Fleet-v1+json

{
  "isVoiceEnabled": false,
  "motd": "This is an <b>awesome</b> fleet!",
  "isFreeMove": false,
  "isRegistered": false,
  "members": {
    "href": "https://crest-tq.eveonline.com/fleets/1060711261968/members/"
  },
  "wings": {
    "href": "https://crest-tq.eveonline.com/fleets/1060711261968/wings/"
  }
}
Response Details
  • isVoiceEnabled: Is EVE Voice enabled.
  • motd: Fleet MOTD in CCP flavoured HTML.
  • isFreeMove: Is free-move enabled.
  • isRegistered: Does the fleet have an active fleet advertisement.
  • members: Contains link to the fleet’s members collection.
  • wings: Contains link to the fleet’s wings collection.
PUT
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetUpdate-v1+json

{
    "isFreeMove": true,
    "motd": "This is an <b>awesome</b> fleet, and it needs an even <font size=24 color=#ffff0000>more awesome</font> MOTD!!!"
}
Request Details
  • isFreeMove: Should free-move be enabled in the fleet. Optional.
  • motd: New fleet MOTD in CCP flavoured HTML. Optional.
References
Fleet Members
Fleet Members

The fleet members collection provides details about the fleet’s members, and allows you to invite new members to the fleet.

  • Route: Fleetmembers.href
  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/members/
GET
  • Cache: 5 seconds
  • Scope: fleetRead
Sample Response

Media type: application/vnd.ccp.eve.FleetMembers-v1+json

{
  "totalCount_str": "1",
  "items": [
    {
      "takesFleetWarp": true,
      "squadID": 3129411261968,
      "solarSystem": {
        "id_str": "30003729",
        "href": "https://crest-tq.eveonline.com/solarsystems/30003729/",
        "id": 30003729,
        "name": "KBP7-G"
      },
      "wingID": 2073711261968,
      "boosterID_str": "3",
      "roleID": 3,
      "character": {
        "isNPC": false,
        "id_str": "93265215",
        "href": "https://crest-tq.eveonline.com/characters/93265215/",
        "id": 93265215,
        "name": "Carbon Alabel"
      },
      "boosterID": 3,
      "boosterName": "Squad Booster",
      "href": "https://crest-tq.eveonline.com/fleets/1060711261968/members/93265215/",
      "squadID_str": "3129411261968",
      "roleName": "Squad Commander (Boss)",
      "station": {
        "id_str": "61000180",
        "href": "https://crest-tq.eveonline.com/stations/61000180/",
        "id": 61000180,
        "name": "KBP7-G VII - The Pig Sty"
      },
      "ship": {
        "id_str": "33328",
        "href": "https://crest-tq.eveonline.com/inventory/types/33328/",
        "id": 33328,
        "name": "Capsule - Genolution 'Auroral' 197-variant"
      },
      "joinTime": "2016-04-29T12:34:56",
      "wingID_str": "2073711261968",
      "roleID_str": "3"
    }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 1
}
Response Details
  • takesFleetWarp: Does the member take fleet warps.
  • squadID: ID of the squad the member is in. If not applicable, will be set to -1.
  • solarSystem: Solar system the member is located in.
  • wingID: ID of the wing the member is in. If not applicable, will be set to -1.
  • roleID: ID of the member’s role. Possible values:
    • 1 - fleet commander
    • 2 - wing commander
    • 3 - squad commander
    • 4 - squad member
  • character: Member character.
  • boosterID: ID of the member’s boosting position. Possible values:
    • 0 - not a booster
    • 1 - fleet booster
    • 2 - wing booster
    • 3 - squad booster
  • boosterName: Name of the member’s boosting position.
  • href: URL of the member resource.
  • roleName: Name of the member’s role. Will also indicate if the member is fleet boss.
  • station: Station in which the member is docked in. Will not be present if member is not docked in a station.
  • ship: Ship type the member is currently in.
  • joinTime: Date and time at which the member joined the fleet.
Notes
  • The location and ship type of a member can be delayed by up to 30 seconds.
POST
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetMemberInvite-v1+json

{
  "role": "squadMember",
  "squadID": 3129411261968,
  "wingID": 2073711261968,
  "character": {
    "href": "https://crest-tq.eveonline.com/characters/92168909/"
  }
}
Request Details
  • role: Role which the character should have upon joining. Possible values:
    • fleetCommander
    • wingCommander
    • squadCommander
    • squadMember
  • squadID: Squad which the character should be in upon joining, if applicable.
  • wingID: Wing which the character should be in upon joining, if applicable.
  • character: The character to which the invite should be sent.
    • href: URL of the character resource.
Notes
  • If a character has a CSPA charge set, it is not possible to invite them to the fleet using CREST.
  • If a character is invited with the fleetCommander role, neither squadID or wingID should be specified.
  • If a character is invited with the wingCommander role, only wingID should be specified.
  • If a character is invited with the squadCommander role, both squadID and wingID should be specified.
  • If a character is invited with the squadMember role, squadID and wingID should either both be specified or not specified at all. If they aren’t specified, the invited character will join any squad with available positions.
Fleet Member

The fleet member resource allows you to kick members out of the fleet and move them around it.

  • Route: Fleetmembers.hrefitems[].href
  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/members/93265215/
DELETE
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetMemberDelete-v1+json

{}
PUT
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetMemberUpdate-v1+json

{
  "newRole": "squadCommander",
  "newSquadID": 3129411261968,
  "newWingID": 2073711261968
}
Request Details
  • newRole: Role which the character should be moved to. Possible values:
    • fleetCommander
    • wingCommander
    • squadCommander
    • squadMember
  • newSquadID: Squad which the character should be moved to, if applicable.
  • newWingID: Wing which the character should be moved to, if applicable.
Notes
  • If a character is moved to the fleetCommander role, neither newSquadID or newWingID should be specified.
  • If a character is moved to a wingCommander role, only newWingID should be specified.
  • If a character is moved to a squadCommander or squadMember role, both newSquadID and newWingID should be specified.
References
Fleet Squads
Fleet Squads

The fleet squads collection allows you to create new squads.

  • Route: Fleetwings.hrefitems[].squads.href
  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/wings/2073711261968/squads/
POST
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetSquadCreate-v1+json

{}
Notes
  • No information about the newly created squad will be returned in the response.
Fleet Squads

The fleet squad resource allows you to delete or rename a squad.

  • Route: Fleetwings.hrefitems[].squadsList[].href
  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/wings/2073711261968/squads/3129411261968/
DELETE
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetSquadDelete-v1+json

{}
Notes
  • Only empty squads can be deleted.
PUT
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetSquadUpdate-v1+json

{
  "name": "New name"
}
Request Details
  • name: New name of the squad. May not be longer than 10 characters.
References
Fleet Wings
Fleet Wings

The fleet wings collection provides details about the fleet’s wings and squads, and allows you to create new wings.

  • Route: Fleetwings.href
  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/wings/
GET
  • Cache: 5 seconds
  • Scope: fleetRead
Sample Response

Media type: application/vnd.ccp.eve.FleetWings-v1+json

{
  "totalCount_str": "1",
  "items": [
    {
      "name": "Wing 1",
      "href": "https://crest-tq.eveonline.com/fleets/1060711261968/wings/2073711261968/",
      "squadsList": [
        {
          "id_str": "3129411261968",
          "href": "https://crest-tq.eveonline.com/fleets/1060711261968/wings/2073711261968/squads/3129411261968/",
          "id": 3129411261968,
          "name": "Squad 1"
        }
      ],
      "id_str": "2073711261968",
      "squads": {
        "href": "https://crest-tq.eveonline.com/fleets/1060711261968/wings/2073711261968/squads/"
      },
      "id": 2073711261968
    }
  ],
  "pageCount": 1,
  "pageCount_str": "1",
  "totalCount": 1
}
Response Details
  • name: Name of the wing.
  • href: URL of the wing resource.
  • squadsList: List containing details of the wing’s squads.
  • squads: Contains link to the wing’s squad collection.
  • id: ID of the wing.
Notes
  • All items will be listed on a single page.
POST
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetWingCreate-v1+json

{}
Notes
  • No information about the newly created wing will be returned in the response.
Fleet Wing

The fleet wing resource allows you to delete or rename a wing.

  • Route: Fleetwings.hrefitems[].href
  • Example URL: https://crest-tq.eveonline.com/fleets/1060711261968/wings/2073711261968/
DELETE
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetWingDelete-v1+json

{}
Notes
  • Only empty wings can be deleted. The wing may contain squads, but the squads must be empty.
PUT
  • Scope: fleetWrite
Sample Request

Media type: application/vnd.ccp.eve.FleetWingUpdate-v1+json

{
  "name": "New name"
}
Request Details
  • name: New name of the wing. May not be longer than 10 characters.
References

Autogenerated Documentation

XML API

This API will be shut down May 8th, 2018 or earlier if metrics signal a trivial level of usage. Please use ESI instead.

Deprecation Notice

This API will be shut down May 8th, 2018 or earlier if metrics signal a trivial level of usage, please use ESI instead. The following is kept for historical purposes.

Introduction

The EVE XML API is an HTTP read only API to the EVE Universe. The API has both publicly accessible information and private character/corporation information. Using the API does not require any kind of registration, simply point your HTTP requests to the correct locations, or use one of the many third-party libraries, and away you go.

Accessing The API

As the XML API is an HTTP API you can access it by simply pointing your browser at the correct endpoints. An example of this would be: https://api.eveonline.com/eve/CharacterInfo.xml.aspx?characterID={character_id_here}

The above will take you to the public character information for the specific character ID.

If you would like to access private information you will need to authenticate using one of the available methods as described in Authentication.

User-Agent

Consuming the XML API does not require you as a developer to register or pass any unique identification with each request. While this is makes getting into and developing with the API very easy, it means aside from the IP address CCP has very little way in identifying who the requests are coming from.

We ask that if you are going to consume the API that you pass a custom User-Agent header along with your requests. The User-Agent should primarily include information on how we can contact you, but it is also a good idea to include your application name and version.

If at all possible if something goes wrong with you application and we are considering banning it from the API, we will attempt to contact you first before banning. There are of course other reasons for us to contact you, but that is the primary one.

A good User-Agent header makes CCP very happy.

Schema

The returned response of the XML API follows the following schema:

<eveapi version="2">
    <currentTime>DateTime</currentTime>
    <result>
        Various result schemas
    </result>
    <cachedUntil>DateTime</cachedUntil>
</eveapi>

The DateTime is always of the format yyyy-MM-dd HH:mm:ss.

The result schema can have various combinations like:

<result>
    <xmlElement>Some text</xmlElement>
    ...
    <xmlElement>
        <xmlElement>Some text</xmlElement>
        ...
    </xmlElement>
</result>

or

<result>
    <xmlElement>Some text</xmlElement>
    ...
</result>

or

<result>
    <rowset name="" key="" columns="">
        <row attributte1="" attributte2="" attributte3="" attributte4=""/>
        ...
    </rowset>
</result>

or a combination of all above schemas.

The Sample Response in each call page, displays the result schema.

Test Server

The Singularity test server has the XML API running and is in most cases updated before Tranquility. We do highly encourage third-party developers to test new API features on Singularity and provide feedback.

New features being deployed to Singularity will often be announced in the dev blogs of the developer web site and/or the technology lab forums section.

Authentication

There are two methods of authentication available for use with the XML API. As the XML API is a read-only API and only supports GET requests, both involve adding parameters to the query string.

API keys

API keys are the primary method of accessing private XML API endpoints. They may be created, updated and deleted by users at the API Key Management page.

Usage

To authenticate using an API key, include the key ID and verification code as parameters in the URL.

Parameter Value
keyID Key ID of the API key.
vCode Verification code of the API key.

Example: https://api.eveonline.com/account/AccountStatus.xml.aspx?keyID=5342860&vCode=1JlLzA5N7fsKh0keyYfFQtkCfm4VvnO4coFXXUDun2ySQjd66AxxJF0OxljvdwdZ

API key parameters
  • Name: Name of the API key. Does not have to be unique, and is only visible to the owner of the API key. Irrelevant to end users of the API key, but may make API key management easier for their owners.
  • Key ID: Unique ID of the API key. May not be changed.
  • Verification code: Alphanumeric string consisting of up to 64 characters. By default, a random full length code will be generated, but the owner may use a verification code of any length. Matches the regular expression [a-zA-Z0-9]{1,64}
  • Access mask: Bitmask defining which endpoints the API key will provide access to.
  • Type: Two main types of API keys are character and corporation keys. Character keys can be further divided into character keys, which provide access to only one chracter, and account keys, which provide access to all characters on an account. Only directors of a corporation may create corporation API keys.
  • Expiry date: How long the API key will be valid. By default, API keys are valid for 1 year from the date of creation, but that date may be changed and they may also be set to never expire. Expired API keys may be reactivated by changing the expiry date.

Provided you have the key ID and verification code of an API key, you can use the /account/APIKeyInfo.xml.aspx endpoint to retrieve most information about it. As all properties of an API key except the key ID may be modified by the owner at any time, it is good practive to use this endpoint for monitoring stored API keys.

Create predefined API keys

It is possible to ease the process of requesting a specific API key from someone by providing them with a CreatePredefined link. It will take them to the API key creation page, but some or all of the fields may be predefined by the link.

The base URL is https://community.eveonline.com/support/api-key/CreatePredefined, and presets are defined by adding a query string to that URL. The parameters which may be used are:

  • accessMask: The access mask which the API key should have.
  • ownerType: Type of the API key which should be created. Whether a character key is account wide or not is determined by another property. Can be Character or Corporation, defaults to Character.
  • ownerID: ID of the character or corporation which the API key applies to. Defaults to 0, which will create an account key instead of a character key.

For example, to request an account wide API key which gives you access to mail of all characters on that account, you can provide your users with the following link: https://community.eveonline.com/support/api-key/CreatePredefined?accessMask=3584

SSO access tokens

SSO access tokens are another method for accessing private endpoints. Compared to API keys, they are more limited as they can’t be used for account access. Aside from that limitation, using this method will make things easier for your users as they won’t have to bother with creating an API key and giving you the details: they just have to authorize your SSO app.

Usage

To authenticate using an SSO access token, include the access token as a parameter in the URL. As an access token may contain scopes for both character and corporation access, you must also define which one you will be using.

Parameter Value
accessToken SSO access token.
accessType Should be set to character or corporation, depending on which type of access is required. Optional, defaults to character.

Example: https://api.eveonline.com/char/AccountBalance.xml.aspx?characterID=93265215&accessToken=Ls-vx-xMqq03cl7yMPWdWTVyp1TQUod7WyXti_EmuEVaUMt5JQibftknW06mtFDfhLS7khMP7S93QxXeUzGnxw2

Access mask reference
Scope to access mask mappings

These tables list the SSO scopes which allow access to the XML API and the access masks they map to. To check which access mask an access token provides, you may also make a call to the /account/APIKeyInfo.xml.aspx endpoint using the token.

Character access
SSO scope Access mask
characterWalletRead1 | 2097152 | 4194304
characterAssetsRead2 | 134217728
characterCalendarRead4 | 1048576
characterContactsRead16 | 32 | 524288
characterFactionalWarfareRead64
characterIndustryJobsRead128
characterKillsRead256
characterMailRead512 | 1024 | 2048
characterMarketOrdersRead4096
characterMedalsRead8192
characterNotificationsRead16384 | 32768
characterResearchRead65536
characterSkillsRead131072 | 262144 | 1073741824
characterAccountRead33554432
characterContractsRead67108864
characterBookmarksRead268435456
characterChatChannelsRead536870912
characterClonesRead2147483648
Corporation access
SSO scope Access mask
corporationWalletRead1 | 8 | 1048576 | 2097152
corporationAssetsRead2 | 32 | 16777216
corporationMedalsRead4 | 8192
corporationContactsRead16 | 262144
corporationFactionalWarfareRead64
corporationIndustryJobsRead128
corporationKillsRead256
corporationMembersRead512 | 1024 | 2048 | 4194304 | 33554432
corporationMarketOrdersRead4096
corporationStructuresRead16384 | 32768 | 131072 | 524288
corporationShareholdersRead65536
corporationContractsRead8388608
corporationBookmarksRead67108864

Caching

Cache timers listed on endpoint pages may not be 100% accurate and shouldn’t be used in your application. Instead, you should read the cachedUntil values returned in every response, and obey them to the best of your ability. This is generally best accomplished with some kind of local caching mechanism.

Very long cache timers

Some endpoints, most notably ContractItems and MailBodies have very long cache timers (10 years). The reason for such long cache timers is the fact that their contents never change (once a contract is created or a mail sent, it cannot be edited), so in theory they can be cached forever. In the past, this has caused some problems when present on endpoints whose contents actually change from time to time.

If you are making lots of requests to those endpoints, locally caching the responses may take up a lot of space, so you might want to implement some kind of garbage collection to prevent them from filling up all available storage.

Rate Limits

Rate limits are tracked by IP address. Certain endpoints also consider some parameters combined with your IP for rate limiting.

Limit Overview
  • General rate limit: 30 requests per second
  • Error rate limit: 300 exceptions per 3 minutes
  • Error rate limit ban duration: 15 minutes
General Rate Limit

The general rate limit is 30 requests per second.

If for some reason you require more than 30 requests per second on the API please feel free to contact us and we can discuss giving you a higher limit. For the most part very few people should need that, 30 requests per second is a fairly large number. The white listing is not an excuse for you as a developer being lazy or ignoring the cache timers.

Error Rate Limit

The error rate limit is a secondary rate limit meant to prevent the abuse of the API. If your application generates more than 300 exceptions within 3 minutes, you will automatically be banned from the API for 15 minutes.

Any request to the API which does not succeed is considered an exception. This may happen due to faulty parameters, missing or incorrect authentication, internal API errors or any other reason.

API Walking

Journal Walking

Corporation and character journals are configured to provide up to one month of data. Since each journal request returns at most 2560 entries, you may need to “walk” the journal forward or backward to retrieve all entries for a given month. Journal walking is based on a reference ID (wallet journal) or transaction ID (wallet transactions) which is used to bound the journal entries or transactions returned by an API call. Note: the sort order for the rows returned by a journal API call is undefined. More often than not, the rows will be ordered “new to old”, but this can’t be relied upon for determining the minimum or maximum ID for journal walking.

Walking Forward

Walking forward is normally done by omitting the “fromID” parameter from a journal API call. That is, walking forward occurs automatically with each new request that does not specify a fromID.

Walking Backward

Walking backward is normally performed by setting “fromID” to the lowest reference ID (wallet journal) or transaction ID (wallet transaction) from your previous journal API request. You will then receive the latest journal entries or transactions prior to “fromID”. You can not walk backwards more than one month.

Journal Walking Pseudo-Code

The following pseudo-code illustrates a simple way to implement journal walking to collect all entries for a given month:

  let entries = []
  let next = get_entries(limit=2560)
  while (next.size > 0)
    entries += next
    next = get_entries(limit=2560)
  let from = minID(entries)
  next = get_entries(limit=2560, fromID=from)
  while (next.size > 0)
    entries += next
    from = min(from, minID(next))
    next = get_entries(limit=2560, fromID=from)

Response Data Constants

Constant values are used in certain response data columns to represent enumerated types. These constants are defined in the tables below.

Order State
Value Meaning
0 Open or Active
1 Closed
2 Expired or Fulfilled
3 Cancelled
4 Pending
5 Character Deleted
Applies to
MarketOrders

Retrieve character Market Orders.

  • Path: /char/MarketOrders.xml.aspx

  • Cache timer: 1 hour

  • Access mask: 4096

  • Parameters:

    Argument Type Description
    characterID long ID of character. Optional only if the key is character specific, otherwise mandatory.
    orderID long Optional order ID of order to retrieve. If omitted, retrieves an order batch (see notes).
Sample Response
<result>
    <rowset name="orders" key="orderID" columns="orderID,charID,stationID,volEntered,volRemaining,minVolume,orderState,typeID,range,accountKey,duration,escrow,price,bid,issued">
        <row orderID="4053334100" charID="1801683792" stationID="60005686" volEntered="340000" volRemaining="245705" minVolume="1" orderState="0" typeID="24488" range="32767" accountKey="1000" duration="90" escrow="0.00" price="92.00" bid="0" issued="2015-05-19 03:16:16"/>
        <row orderID="4097983513" charID="1801683792" stationID="60005686" volEntered="390" volRemaining="336" minVolume="1" orderState="0" typeID="3568" range="32767" accountKey="1000" duration="14" escrow="0.00" price="480000.00" bid="0" issued="2015-05-20 03:40:06"/>
        <row orderID="4111136138" charID="1801683792" stationID="60005701" volEntered="27" volRemaining="0" minVolume="1" orderState="2" typeID="20417" range="-1" accountKey="1000" duration="0" escrow="0.00" price="122000.00" bid="1" issued="2015-05-16 04:16:28"/>
        <row orderID="4111136288" charID="1801683792" stationID="60007294" volEntered="79" volRemaining="0" minVolume="1" orderState="2" typeID="20417" range="-1" accountKey="1000" duration="0" escrow="0.00" price="130000.00" bid="1" issued="2015-05-16 04:16:37"/>
    </rowset>
</result>
Result Data
orders rowset Rowset containing 1 row per market order.
orderID long Unique order ID.
charID long Character ID of the character which placed this order.
stationID int [1], [2], [3], [4] Station ID where order was placed.
volEntered int Quantity of items required or offered at time order was placed.
volRemaining int Quantity of items still required or offered.
minVolume int For bids (buy orders), the minimum quantity that will be accepted in a matching offer (sell order).
orderState int [1] Current order state.
typeID int [1], [2], [3], [4], [5] The type ID of the item transacted in this order.
range int [1] Valid order range.
accountKey int Wallet division for the buyer or seller of this order. Always 1000 for characters. Currently 1000 through 1006 for corporations.
duration int Numer of days for which order is valid (starting from the issued date). An order expires at time issued + duration.
escrow decimal For buy orders, the amount of ISK in escrow.
price decimal Cost per unit for this order.
bid bool True (1) for a bid (buy) order. False (0) for an offer (sell) order.
issued datetime Date and time when this order was issued.
Notes
  • If order ID is omitted, this call will return an order “batch” for the current month, which consists of:
    • All open “limit” orders (the first two rows in the example above). These are orders which were placed with a particular price target and were not fulfilled immediately.
    • All completed “market” orders (the last two rows in the example above). These are orders which were matched immediately when they were placed.
  • An open “limit” order which is later fulfilled or otherwise closed will no longer be provided in the order batch. To discover the state of such an order, you will need to pass the order ID explicitly.
MarketOrders
  • Path: /corp/MarketOrders.xml.aspx

  • Cache timer: 1 hour (assumed from /char/MarketOrders.xml.aspx)

  • Access mask: 4096

  • Parameters:

    Argument Type Description
    characterID long ID of character. Optional only if the key is character specific, otherwise mandatory.
    orderID long Optional order ID of order to retrieve. If omitted, retrieves an order batch (see notes).
Sample Response
<result>
    <rowset name="orders" key="orderID" columns="orderID,charID,stationID,volEntered,volRemaining,minVolume,orderState,typeID,range,accountKey,duration,escrow,price,bid,issued">
        <row orderID="4053334100" charID="1801683792" stationID="60005686" volEntered="340000" volRemaining="245705" minVolume="1" orderState="0" typeID="24488" range="32767" accountKey="1000" duration="90" escrow="0.00" price="92.00" bid="0" issued="2015-05-19 03:16:16"/>
        <row orderID="4097983513" charID="1801683792" stationID="60005686" volEntered="390" volRemaining="336" minVolume="1" orderState="0" typeID="3568" range="32767" accountKey="1000" duration="14" escrow="0.00" price="480000.00" bid="0" issued="2015-05-20 03:40:06"/>
        <row orderID="4111136138" charID="1801683792" stationID="60005701" volEntered="27" volRemaining="0" minVolume="1" orderState="2" typeID="20417" range="-1" accountKey="1000" duration="0" escrow="0.00" price="122000.00" bid="1" issued="2015-05-16 04:16:28"/>
        <row orderID="4111136288" charID="1801683792" stationID="60007294" volEntered="79" volRemaining="0" minVolume="1" orderState="2" typeID="20417" range="-1" accountKey="1000" duration="0" escrow="0.00" price="130000.00" bid="1" issued="2015-05-16 04:16:37"/>
    </rowset>
</result>
Result Data
orders rowset Rowset containing 1 row per market order.
orderID long Unique order ID.
charID long Character ID of the character which placed this order.
stationID int [1], [2], [3], [4] Station ID where order was placed.
volEntered int Quantity of items required or offered at time order was placed.
volRemaining int Quantity of items still required or offered.
minVolume int For bids (buy orders), the minimum quantity that will be accepted in a matching offer (sell order).
orderState int [1] Current order state.
typeID int [1], [2], [3], [4], [5] The type ID of the item transacted in this order.
range int [1] Valid order range.
accountKey int Wallet division for the buyer or seller of this order. Always 1000 for characters. Currently 1000 through 1006 for corporations.
duration int Numer of days for which order is valid (starting from the issued date). An order expires at time issued + duration.
escrow decimal For buy orders, the amount of ISK in escrow.
price decimal Cost per unit for this order.
bid bool True (1) for a bid (buy) order. False (0) for an offer (sell) order.
issued datetime Date and time when this order was issued.
Notes
  • If order ID is omitted, this call will return an order “batch” for the current month, which consists of:
    • All open “limit” orders (the first two rows in the example above). These are orders which were placed with a particular price target and were not fulfilled immediately.
    • All completed “market” orders (the last two rows in the example above). These are orders which were matched immediately when they were placed.
  • An open “limit” order which is later fulfilled or otherwise closed will no longer be provided in the order batch. To discover the state of such an order, you will need to pass the order ID explicitly.
Order Range
Value Meaning
32767 Region (buy order). Default value for all sell orders.
-1 Station (buy order)
0 Solar System (buy order)
5, 10, 20, or 40 Jumps from station where order was placed (buy order)
Applies to
Raw Quantity
Value Meaning
-1 Every item except blueprints: Singleton (=non-stackable)
-1 Blueprint Original
-2 Blueprint Copy
Applies to
AssetList

Lists everything a character owns.

  • Path: /char/AssetList.xml.aspx

  • Cache timer: ca. 2 hours (XML cache), 6 hours (data cache)

  • Access mask: 2

  • Parameters:

    Argument Type Description
    characterID long ID of character
    flat bool 0 (False, default) - return a nested assets list
    1 (True) - return flat assets list
Sample Response
(Nested response)
<eveapi version="2">
    <currentTime>2015-07-10 10:32:32</currentTime>
        <result>
            <rowset name="assets" key="itemID" columns="itemID,locationID,typeID,quantity,flag,singleton">
                <row itemID="1018649971138" locationID="60001864" typeID="1319" quantity="5" flag="4" singleton="0" />
                <row itemID="1787288209" locationID="60003760" typeID="12743" quantity="1" flag="4" singleton="1" rawQuantity="-1">
                    <rowset name="contents" key="itemID" columns="itemID,typeID,quantity,flag,singleton">
                        <row itemID="589965999" typeID="8433" quantity="1" flag="20" singleton="1" rawQuantity="-1" />
                        <row itemID="824051273" typeID="26060" quantity="1" flag="92" singleton="1" rawQuantity="-1" />
                        <row itemID="1017307387" typeID="1319" quantity="1" flag="5" singleton="1" rawQuantity="-1" />
                        <row itemID="1018184692465" typeID="25589" quantity="2" flag="5" singleton="0" />
                        <row itemID="1018563763395" typeID="11132" quantity="1" flag="5" singleton="0" />
                    </rowset>
                </row>
                <row itemID="1017933248702" locationID="60003760" typeID="24594" quantity="89000" flag="4" singleton="0" />
                <row itemID="1018046062102" locationID="60003760" typeID="16247" quantity="17" flag="4" singleton="0" />
                <row itemID="1018482760487" locationID="60003760" typeID="24595" quantity="46604" flag="4" singleton="0" />
            </rowset>
        </result>
    <cachedUntil>2015-07-10 12:14:50</cachedUntil>
</eveapi>
Sample Response
(Flat response)
<result>
    <rowset name="assets" key="itemID" columns="itemID,locationID,typeID,quantity,flag,singleton">
        <row itemID="1787288209" locationID="60003760" typeID="12743" quantity="1" flag="4" singleton="1" rawQuantity="-1" />
        <row itemID="1018046062102" locationID="60003760" typeID="16247" quantity="17" flag="4" singleton="0" />
        <row itemID="1018482760487" locationID="60003760" typeID="24595" quantity="51207" flag="4" singleton="0" />
        <row itemID="1018510338105" locationID="60003760" typeID="24593" quantity="62656" flag="4" singleton="0" />
        <row itemID="1018511379483" locationID="60003760" typeID="19689" quantity="19" flag="4" singleton="0" />
        <row itemID="1018526577354" locationID="60003760" typeID="21918" quantity="348589" flag="4" singleton="0" />
    </rowset>
</result>
Result Data
Name Data type Description
itemID long Unique ID for this item. The ID of an item is stable if that item is not repackaged, stacked, detached from a stack, assembled, or otherwise altered. If an item is changed in one of these ways, then the ID will also change (see notes below).
locationID long References a solar system or station. Note that in the nested XML response this column is not present in the sub-asset lists, as those share the locationID of their parent node. Example: a module in a container in a ship in a station.. Whereas the flat XML returns a locationID for each item. (See the notes on how to resolve the locationID to a solar system or station)
typeID int [1] The type of this item.
quantity long How many items are in this stack.
flag int Indicates something about this item's storage location. The flag is used to differentiate between hangar divisions, drone bay, fitting location, and similar. Please see the Inventory Flags documentation.
singleton bool If True (1), indicates that this item is a singleton. This means that the item is not packaged.
rawQuantity long Items in the AssetList (and ContractItems) now include a rawQuantity attribute if the quantity in the DB is negative (see notes).
Notes
  • locationID:
    • officeID to stationID conversion
      To convert locationIDs greater than or equal to 66000000 and less than 67000000 to stationIDs from staStations subtract 6000001 from the locationID. To convert locationIDs greater than or equal to 67000000 and less than 68000000 to stationIDs from ConquerableStationList subtract 6000000 from the locationID.
    • locationID to StationID/itemID conversion
      The locationID is not always an officeID (for example, when you never had an office there, but have items in the Deliveries area for items bought/sold (flag=62). In cases like these the officeID to stationID conversion above will not always work. There is a small group of dbo.staStations.stationID mapReferences, or locationIDs that are part of the ConquerableStationList and less than the 61000000 base for Player Outposts. Basically, when 60000000 < locationID < 61000000 the mapReference (eveName, mapDenormailze, staStations) will give you the name of the object. The exception is the range 60014861 through (including) 60014928. This is the range of stationID’s that are actually the conquerableStations that pre-date player Outposts. When the locationID is greater than or equal to 66000000 the the officeID conversion works. When the locationID is greater than 61000000 and less than 66000000 then it is a ConquerableOutpost. When the locationID < 60000000 then the asset is somewhere in space - I have only seen solarSystem numbers.
  • rawQuantity:
    Items in the AssetList (and ContractItems) include a rawQuantity attribute if the quantity in the DB is negative. Negative quantities are in fact codes, -1 indicates that the item is a singleton (non-stackable). If the item happens to be a blueprint, -1 is an Original and -2 is a blueprint Copy.

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

AssetList
ContractItems

Lists Items and details of a particular contract.

  • Path: /char/ContractItems.xml.aspx

  • Cache timer: 10 years

  • Access mask: 67108864

  • Parameters:

    Argument Type Description
    characterID long ID of character
    contractID long ID of the contract
Sample Response
<result>
    <rowset columns="recordID,typeID,quantity,rawQuantity,singleton,included" key="recordID" name="itemList">
        <row included="1" singleton="0" quantity="1" typeID="4310" recordID="1737516979"/>
        <row included="1" singleton="0" quantity="1" typeID="35659" recordID="1737516980"/>
        <row included="1" singleton="0" quantity="1" typeID="519" recordID="1737516981"/>
        <row included="1" singleton="0" quantity="2" typeID="28999" recordID="1737516982"/>
        <row included="1" singleton="0" quantity="1" typeID="2961" recordID="1737516983"/>
        <row included="1" singleton="0" quantity="1" typeID="2048" recordID="1737516984"/>
        <row included="1" singleton="0" quantity="2" typeID="29001" recordID="1737516985"/>
        <row included="1" singleton="0" quantity="1" typeID="2961" recordID="1737516986"/>
        <row included="1" singleton="0" quantity="2000" typeID="21894" recordID="1737516987"/>
        <row included="1" singleton="0" quantity="1" typeID="2961" recordID="1737516988"/>
        <row included="1" singleton="0" quantity="1" typeID="1952" recordID="1737516989"/>
        <row included="1" singleton="0" quantity="1" typeID="29009" recordID="1737516990"/>
        <row included="1" singleton="0" quantity="1" typeID="2961" recordID="1737516991"/>
        <row included="1" singleton="0" quantity="1" typeID="1978" recordID="1737516992"/>
        <row included="1" singleton="0" quantity="1" typeID="29011" recordID="1737516993"/>
        <row included="1" singleton="0" quantity="1" typeID="9491" recordID="1737516994"/>
        <row included="1" singleton="0" quantity="1" typeID="1978" recordID="1737516995"/>
        <row included="1" singleton="0" quantity="1" typeID="9491" recordID="1737516996"/>
        <row included="1" singleton="0" quantity="1" typeID="2605" recordID="1737516997"/>
        <row included="1" singleton="0" quantity="1" typeID="2961" recordID="1737516998"/>
        <row included="1" singleton="0" quantity="1" typeID="9491" recordID="1737516999"/>
        <row included="1" singleton="0" quantity="1" typeID="31360" recordID="1737517000"/>
        <row included="1" singleton="0" quantity="1" typeID="8529" recordID="1737517001"/>
        <row included="1" singleton="0" quantity="1" typeID="519" recordID="1737517002"/>
        <row included="1" singleton="0" quantity="1" typeID="31360" recordID="1737517003"/>
        <row included="1" singleton="0" quantity="1" typeID="31113" recordID="1737517004"/>
    </rowset>
</result>
Result Data
Name Data type Description
recordID long Unique ID for the item.
typeID long [1] Type ID for item.
quantity long Number of items in the stack.
rawQuantity long [2] This attribute will only show up if the quantity is a negative number in the DB. Negative quantities are in fact codes, -1 indicates that the item is a singleton (non-stackable). If the item happens to be a Blueprint, -1 is an Original and -2 is a Blueprint Copy.
singleton long T1 if this is a singleton item, 0 if not.
included long 1 if the contract issuer has submitted this item with the contract, 0 if the isser is asking for this item in the contract.
Notes
  • This page returns only contract items from a contractID that is accessible from within their scope. These can be found in Contracts

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

ContractItems
Inventory Flags

These are the flags used by the inventory system. This data is available in the EVE SDE invFlags table. They define hangars or slots where an item may reside. It should be noted that ingame items may have multiple flags, but the API will only show a single flag.

Applies to
Blueprints

Lists blueprints in characters inventory

  • Path: /char/Blueprints.xml.aspx

  • Cache timer: 720 minutes

  • Access mask: 2

  • Parameters:

    Argument Type Description
    characterID long ID of character
Sample Response
<result>
    <rowset columns="itemID,locationID,typeID,typeName,flagID,quantity,timeEfficiency,materialEfficiency,runs" key="itemID" name="blueprints">
        <row runs="1" materialEfficiency="0" timeEfficiency="0" quantity="-2" flagID="4" typeName="Rattlesnake Victory Edition Blueprint" typeID="34153" locationID="60003466" itemID="1014573377908"/>
        <row runs="10" materialEfficiency="0" timeEfficiency="0" quantity="-2" flagID="4" typeName="Council Diplomatic Shuttle Blueprint" typeID="34497" locationID="60003466" itemID="1012538208557"/>
        <row runs="1" materialEfficiency="0" timeEfficiency="0" quantity="-2" flagID="4" typeName="Victorieux Luxury Yacht Blueprint" typeID="34591" locationID="60003466" itemID="1017147043703"/>
    </rowset>
</result>
Result Data
Name Data type Description
itemID long Unique ID for this item. The ID of an item is stable if that item is not repackaged, stacked, detached from a stack, assembled, or otherwise altered. If an item is changed in one of these ways, then the ID will also change (see notes below).
locationID long References a solar system, station or itemID if this blueprint is located within a container. If an itemID the Character - AssetList API must be queried to find the container using the itemID, from which the correct location of the Blueprint can be derived.
typeID int [1] The type of this item.
typeName string The name of this item.
quantity long Typically will be -1 or -2 designating a singleton item, where -1 is an original and -2 is a copy. It can be a positive integer if it is a stack of blueprint originals fresh from the market (no activities performed on them yet).
flagID long [1] Indicates something about this item's storage location. The flag is used to differentiate between hangar divisions, drone bay, fitting location, and similar. Please see the Inventory Flags documentation.
timeEfficiency long Time Efficiency Level of the blueprint, can be any even integer between 0 and 20.
materialEfficiency long Material Efficiency Level of the blueprint, can be any integer between 0 and 10.
runs long Number of runs remaining if the blueprint is a copy, -1 if it is an original.

Note

This article is a stub.

You are welcome to improve the docs by contributing to it.

Blueprints
Reference Type
refTypeID Name argName1 argID1 reason comment
1 Player Trading Station name StationID [1] Location of direct player trade. See Stations Table.
2 Market Transaction transactionID [1] [2] 0 See Character - WalletTransactions or Corporation - WalletTransactions.
10 Player Donation 0 "DESC:" + player entered text Player donation with text entered by the donator appearing in the "reason" field.
13 Office Rental Fee EVE System 1
17 Bounty Prize (historical) NPC Name NPC ID Relaced with refTypeID 85 in Trinity release.
19 Insurance Destroyed Ship Type ID [1] 0 See Inventory Types file.
33 Mission Reward Player name Player character ID
34 Mission Reward Bonus Player name Player character ID
35 CONCORD Spam Prevention Act (CSPA) Player name Player character ID Player name refers to the player you're trying to contact.
37 Corp Account Withdrawal Player name that performed withdrawal Player character ID that performed withdrawal Player entered text Corp account withdrawal with text entered by the withdrawing player appearing in the "reason" field.
40 Logo Change Fee Corporation Name Corporation ID
42 Market Escrow 0
46 Broker Fee EVE System 1 Tags the market order commission fee for a market transaction. The ownerName2 field indicates to whom the fee was paid.
50 Alliance Maintenance Fee Alliance Name Alliance ID Fee paid to CONCORD to maintain an Alliance.
55 Jump Clone Installation Fee EVE System 1 Fee paid for installation of Jump Clone (Maybe only on Citadels). The ownerName2 field indicates to whom the fee was paid.
54 Sales Tax 0
56 Manufacturing Job ID [1] [2] 0 Fee for industry manufacturing job. See Character - IndustryJobs or Corporation - IndustryJobs.
63, 64, 71, 72, 73, 74, 79, 80, 81, 82 Various contract types Contract ID? 0
85 Bounty Prizes solarSystemID [1] NPC ID:quantity killed[,id:qty[,...]] Arg1ID provides the solar system ID where the bounty was acquired. For each type of NPC killed, its typeID is followed by a colon and the quantity killed. These pairs are seperated by commas, and if there are too many (more than about 60 characters' worth) the list is ended with a literal ",..." to indicate that more have been left off the list.
87 Medal Creation Fee Name of the player creating the medal Character ID of the player creating the medal
88 Medal Issuing Fee Name of the player issuing the medal Character ID of the player issuing the medal
96 Customs Office Import Duty Planet name Planet ID [1] "Import Duty for " + planet name Customs office import duty for the named planet. The duty was paid to the entity with ownerID2.
97 Customs Office Export Duty Planet name Planet ID [1] "Export Duty for " + planet name Customs office export duty for the named planet. The duty was paid to the entity with ownerID2.
99 Corporate Reward Payout 0
120 Industry Facility Tax Citadel ID? Corporation tax for using industry facilities
125 Project Discovery Reward EVE System 1
127 Reprocessing Fee Corporation tax for using reprocessing facilities
128 Jump Clone Activation Fee EVE System 1
Applies to
WalletJournal

Retrieve character wallet journal.

  • Path: /char/WalletJournal.xml.aspx

  • Cache timer: 30 minutes

  • Access mask: 2097152

  • Parameters:

    Argument Type Description
    characterID long Character ID for which journal entries will be requested
    accountKey int Account key of the wallet for which journal entries will be returned. This is optional for character accounts which only have one wallet (accountKey = 1000). However, corporations have seven wallets with accountKeys numbered from 1000 through 1006. The Corporation - AccountBalance call can be used to map corporation wallet to appropriate accountKey.
    fromID long Optional upper bound for the ref ID of returned journal entries. This argument is normally used to walk to the journal backwards. See Journal Walking for more information.
    rowCount int Optional limit on number of rows to return. Default is 1000. Maximum is 2560.
Sample Response
<result>
    <rowset name="transactions" key="refID" columns="date,refID,refTypeID,ownerName1,ownerID1,ownerName2,ownerID2,argName1,argID1,amount,balance,reason,taxReceiverID,taxAmount">
        <row date="2012-12-16 14:47:03" refID="6709813912" refTypeID="15" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="Wiyrkomi Corporation" ownerID2="1000011" argName1="EVE System" argID1="1" amount="-9250.00" balance="385574791.30" reason="" taxReceiverID="" taxAmount="" />
        <row date="2012-12-15 18:53:29" refID="6705533817" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk VI" argID1="40215551" amount="-206000.00" balance="385584041.30" reason="Export Duty for Vorsk VI" taxReceiverID="" taxAmount="" />
        <row date="2012-12-15 18:53:05" refID="6705532062" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk III" argID1="40215546" amount="-254000.00" balance="385790041.30" reason="Export Duty for Vorsk III" taxReceiverID="" taxAmount="" />
        <row date="2012-12-15 18:52:38" refID="6705529857" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk II" argID1="40215545" amount="-160000.00" balance="386044041.30" reason="Export Duty for Vorsk II" taxReceiverID="" taxAmount="" />
        <row date="2012-12-15 18:51:50" refID="6705526089" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk I" argID1="40215544" amount="-183000.00" balance="386204041.30" reason="Export Duty for Vorsk I" taxReceiverID="" taxAmount="" />
        <row date="2012-12-13 10:37:13" refID="6694409579" refTypeID="15" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="Wiyrkomi Corporation" ownerID2="1000011" argName1="EVE System" argID1="1" amount="-21275.00" balance="386387041.30" reason="" taxReceiverID="" taxAmount="" />
        <row date="2012-12-13 01:02:16" refID="6692943658" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk VI" argID1="40215551" amount="-259000.00" balance="386408316.30" reason="Export Duty for Vorsk VI" taxReceiverID="" taxAmount="" />
        <row date="2012-12-13 01:01:32" refID="6692941689" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk III" argID1="40215546" amount="-317000.00" balance="386667316.30" reason="Export Duty for Vorsk III" taxReceiverID="" taxAmount="" />
        <row date="2012-12-13 01:01:24" refID="6692941373" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk II" argID1="40215545" amount="-171000.00" balance="386984316.30" reason="Export Duty for Vorsk II" taxReceiverID="" taxAmount="" />
        <row date="2012-12-13 01:00:37" refID="6692939153" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk I" argID1="40215544" amount="-248000.00" balance="387155316.30" reason="Export Duty for Vorsk I" taxReceiverID="" taxAmount="" />
        <row date="2012-11-22 12:49:07" refID="6607375119" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk II" argID1="40215545" amount="-213000.00" balance="446826716.30" reason="Export Duty for Vorsk II" taxReceiverID="" taxAmount="" />
        <row date="2012-11-22 12:48:59" refID="6607374952" refTypeID="97" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="CONCORD" ownerID2="1000125" argName1="Vorsk I" argID1="40215544" amount="-228000.00" balance="447039716.30" reason="Export Duty for Vorsk I" taxReceiverID="" taxAmount="" />
    </rowset>
</result>
Result Data
transactions rowset Rowset containing 1 row per journal entry.
date datetime Date and time of transaction.
refID long Unique journal reference ID.
refTypeID int [1] [2] Transaction type.
ownerName1 string Name of first party in transaction.
ownerID1 long [1] Character or corporation ID of first party. For NPC corporations, see the appropriate cross reference.
ownerName2 string Name of second party in transaction.
ownerID2 long [1] Character or corporation ID of second party. For NPC corporations, see the appropriate cross reference.
argName1 variable Ref type dependent argument name. See the Reference Type table.
argID1 int Ref type dependent argument value. See the Reference Type table.
amount decimal Transaction amount. Positive when value transferred to the first owner. Negative otherwise.
balance decimal Wallet balance after transaction occurred.
reason string Ref type dependent reason. See the Reference Type table.
taxReceiverID long [1] For tax related transactions, gives the corporation ID of the entity receiving the tax.
taxAmount decimal Tax amount received for tax related transactions.
References
WalletJournal

Retrieve corporation wallet journal.

  • Path: /corp/WalletJournal.xml.aspx

  • Cache timer: 30 minutes

  • Access mask: 1048576

  • Parameters:

    Argument Type Description
    accountKey int Account key of the wallet for which journal entries will be returned. Corporations have seven wallets numbered from 1000 through 1006. The Corporation - AccountBalance call can be used to map corporation wallet to appropriate accountKey.
    fromID long Optional upper bound for the ref ID of returned journal entries. This argument is normally used to walk to the journal backwards. See Journal Walking for more information.
    rowCount int Optional limit on number of rows to return. Default is 1000. Maximum is 2560.
Sample Response
<result>
    <rowset name="entries" key="refID" columns="date,refID,refTypeID,ownerName1,ownerID1,ownerName2,ownerID2,argName1,argID1,amount,balance,reason,owner1TypeID,owner2TypeID">
        <row date="2012-12-19 12:51:22" refID="6723384310" refTypeID="54" ownerName1="trek apace" ownerID1="90251444" ownerName2="Secure Commerce Commission" ownerID2="1000132" argName1="" argID1="0" amount="-17700.00" balance="7140579224.62" reason="" owner1TypeID="1373" owner2TypeID="2" />
        <row date="2012-12-19 12:51:22" refID="6723384309" refTypeID="2" ownerName1="Ilasia Lynn" ownerID1="92690397" ownerName2="trek apace" ownerID2="90251444" argName1="2682037889" argID1="0" amount="1180000.00" balance="7140596924.62" reason="" owner1TypeID="1385" owner2TypeID="1373" />
        <row date="2012-12-19 12:50:52" refID="6723383243" refTypeID="54" ownerName1="trek apace" ownerID1="90251444" ownerName2="Secure Commerce Commission" ownerID2="1000132" argName1="" argID1="0" amount="-26550.00" balance="7139416924.62" reason="" owner1TypeID="1373" owner2TypeID="2" />
        <row date="2012-12-19 12:50:52" refID="6723383242" refTypeID="2" ownerName1="Ilasia Lynn" ownerID1="92690397" ownerName2="trek apace" ownerID2="90251444" argName1="2682037615" argID1="0" amount="1770000.00" balance="7139443474.62" reason="" owner1TypeID="1385" owner2TypeID="1373" />
        <row date="2012-12-19 11:52:55" refID="6723264857" refTypeID="54" ownerName1="trek apace" ownerID1="90251444" ownerName2="Secure Commerce Commission" ownerID2="1000132" argName1="" argID1="0" amount="-42300.00" balance="7137673474.62" reason="" owner1TypeID="1373" owner2TypeID="2" />
        <row date="2012-12-19 11:52:55" refID="6723264856" refTypeID="2" ownerName1="Pacak Zanjoahir" ownerID1="90500646" ownerName2="trek apace" ownerID2="90251444" argName1="2682011072" argID1="0" amount="2820000.00" balance="7137715774.62" reason="" owner1TypeID="1373" owner2TypeID="1373" />
        <row date="2012-12-19 10:20:54" refID="6723140427" refTypeID="80" ownerName1="reygar burnt" ownerID1="1801683792" ownerName2="Secure Commerce Commission" ownerID2="1000132" argName1="62440569" argID1="0" amount="-10000.00" balance="7134895774.62" reason="" owner1TypeID="1376" owner2TypeID="2" />
        <row date="2012-12-19 10:17:06" refID="6723131004" refTypeID="46" ownerName1="trek apace" ownerID1="90251444" ownerName2="Secure Commerce Commission" ownerID2="1000132" argName1="EVE System" argID1="1" amount="-100.00" balance="7134905774.62" reason="" owner1TypeID="1373" owner2TypeID="2" />
        <row date="2012-12-19 03:19:08" refID="6722119077" refTypeID="54" ownerName1="trek apace" ownerID1="90251444" ownerName2="Secure Commerce Commission" ownerID2="1000132" argName1="" argID1="0" amount="-38070.00" balance="7134905874.62" reason="" owner1TypeID="1373" owner2TypeID="2" />
        <row date="2012-12-19 03:19:08" refID="6722119076" refTypeID="2" ownerName1="rusherl" ownerID1="1785921690" ownerName2="trek apace" ownerID2="90251444" argName1="2681763072" argID1="0" amount="2538000.00" balance="7134943944.62" reason="" owner1TypeID="1373" owner2TypeID="1373" />
    </rowset>
</result>
Result Data
transactions rowset Rowset containing 1 row per journal entry.
date datetime Date and time of transaction.
refID long Unique journal reference ID.
refTypeID int [1] Transaction type.
ownerName1 string Name of first party in transaction.
ownerID1 long [1] Character or corporation ID of first party. For NPC corporations, see the appropriate cross reference.
ownerName2 string Name of second party in transaction.
ownerID2 long [1] Character or corporation ID of second party. For NPC corporations, see the appropriate cross reference.
argName1 variable Ref type dependent argument name. See the Reference Type table.
argID1 int Ref type dependent argument value. See the Reference Type table.
amount decimal Transaction amount. Positive when value transferred to the first owner. Negative otherwise.
balance decimal Wallet balance after transaction occurred.
reason string Ref type dependent reason. See the Reference Type table.
owner1TypeID int Determines the owner type:
2 = Corporation
1373-1386 = Character
16159 = Alliance
owner2TypeID int Determines the owner type:
2 = Corporation
1373-1386 = Character
16159 = Alliance
References
Notification Type
TypeID Description Structured Data
1 Legacy TBD
2 Character deleted TBD
3 Give medal to character TBD
4 Alliance maintenance bill TBD
5 Alliance war declared againstID: 00000000
cost: 0
declaredByID: 00000001
delayHours: 24
hostileState: 1
6 Alliance war surrender TBD
7 Alliance war retracted TBD
8 Alliance war invalidated by Concord againstID: 00000000
cost: null
declaredByID: 00000001
delayHours: null
hostileState: null
9 Bill issued to a character TBD
10 Bill issued to corporation or alliance amount: 20000000
billTypeID: 2
creditorID: 00000000
currentDate: 130764012924912532
debtorID: 00000000
dueDate: 130789932230000000
externalID: 27
externalID2: 62300459
11 Bill not paid because there's not enough ISK available TBD
12 Bill, issued by a character, paid TBD
13 Bill, issued by a corporation or alliance, paid amount: 25000000
dueDate: 130765575000000000
14 Bounty claimed amount: 8508.5
charID: 90610935
15 Clone activated TBD
16 New corp member application applicationText: 'hey there, let me join!'
charID: 90610935
corpID: 00000000
17 Corp application rejected TBD
18 Corp application accepted TBD
19 Corp tax rate changed corpID: 00000000
newTaxRate: 0.10
oldTaxRate: 1.00
20 Corp news report, typically for shareholders TBD
21 Player leaves corp charID: 90610935
corpID: 00000000
22 Corp news, new CEO TBD
23 Corp dividend/liquidation, sent to shareholders TBD
24 Corp dividend payout, sent to shareholders TBD
25 Corp vote created TBD
26 Corp CEO votes revoked during voting TBD
27 Corp declares war TBD
28 Corp war has started TBD
29 Corp surrenders war TBD
30 Corp retracts war TBD
31 Corp war invalidated by Concord TBD
32 Container password retrieval TBD
33 Contraband or low standings cause an attack or items being confiscated TBD
34 First ship insurance isHouseWarmingGift: 1
shipTypeID: 596
35 Ship destroyed, insurance payed amount: 512304.80000000005
itemID: 1017375674103
payout: 1
36 Insurance contract invalidated/runs out TBD
37 Sovereignty claim fails (alliance) TBD
38 Sovereignty claim fails (corporation) TBD
39 Sovereignty bill late (alliance) TBD
40 Sovereignty bill late (corporation) TBD
41 Sovereignty claim lost (alliance) TBD
42 Sovereignty claim lost (corporation) TBD
43 Sovereignty claim acquired (alliance) TBD
44 Sovereignty claim acquired (corporation) TBD
45 Alliance anchoring alert allianceID: 00000000
corpID: 00000000
corpsPresent:
- allianceID: 00000000
  corpID: 00000000
  towers:
  - moonID: 40009081
    typeID: 20062
- allianceID: 00000000
  corpID: 00000000
  towers:
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
- allianceID: 00000000
  corpID: 00000000
  towers:
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
  - moonID: 40009081
    typeID: 16213
- allianceID: 00000000
  corpID: 00000000
  towers:
  - moonID: 40009081
    typeID: 27532
- allianceID: 00000000
  corpID: 00000000
  towers:
  - moonID: 40009081
    typeID: 16214
moonID: 40009081
solarSystemID: 30000142
typeID: 20064
46 Alliance structure turns vulnerable TBD
47 Alliance structure turns invulnerable TBD
48 Sovereignty disruptor anchored TBD
49 Structure won/lost TBD
50 Corp office lease expiration notice TBD
51 Clone contract revoked by station manager TBD
52 Corp member clones moved between stations charsInCorpID: 90610935
corpID: 00000000
newStationID: 60000004
stationID: 60000007
53 Clone contract revoked by station manager TBD
54 Insurance contract expired endDate: 130739439920000000
shipID: 1015328647115
shipName: Tengu
startDate: 130666863920000000
55 Insurance contract issued endDate: 130837996425414355
itemID: 1018232075103
level: 99.99999999999999
numWeeks: 12
shipName: Ishtar
startDate: 130765420425414355
typeID: 12005
56 Jump clone destroyed TBD
57 Jump clone destroyed TBD
58 Corporation joining factional warfare TBD
59 Corporation leaving factional warfare TBD
60 Corporation kicked from factional warfare on startup because of too low standing to the faction TBD
61 Character kicked from factional warfare on startup because of too low standing to the faction TBD
62 Corporation in factional warfare warned on startup because of too low standing to the faction TBD
63 Character in factional warfare warned on startup because of too low standing to the faction TBD
64 Character loses factional warfare rank TBD
65 Character gains factional warfare rank TBD
66 Agent has moved TBD
67 Mass transaction reversal message TBD
68 Reimbursement message TBD
69 Agent locates a character TBD
70 Research mission becomes available from an agent TBD
71 Agent mission offer expires TBD
72 Agent mission times out TBD
73 Agent offers a storyline mission TBD
74 Tutorial message sent on character creation TBD
75 Tower alert aggressorAllianceID: 00000000
aggressorCorpID: 00000000
aggressorID: 90610935
armorValue: 1.0
hullValue: 1.0
moonID: 40009081
shieldValue: 0.9999482233068171
solarSystemID: 30000142
typeID: 16213
76 Tower resource alert allianceID: 00000000
corpID: 00000000
moonID: 40009081
solarSystemID: 30000142
typeID: 20063
wants:
- quantity: 432
  typeID: 4312
77 Station aggression message aggressorCorpID: null
aggressorID: null
shieldValue: 0.9978610653837826
solarSystemID: 30000142
stationID: 60003757
typeID: 28156
78 Station state change message TBD
79 Station conquered message TBD
80 Station aggression message TBD
81 Corporation requests joining factional warfare TBD
82 Corporation requests leaving factional warfare TBD
83 Corporation withdrawing a request to join factional warfare TBD
84 Corporation withdrawing a request to leave factional warfare TBD
85 Corporation liquidation TBD
86 Territorial Claim Unit under attack TBD
87 Sovereignty Blockade Unit under attack aggressorAllianceID: 00000000
aggressorCorpID: 00000000
aggressorID: 90610935
armorValue: 1.0
hullValue: 1.0
shieldValue: 0.999942577300314
solarSystemID: 30000142
88 Infrastructure Hub under attack aggressorAllianceID: 00000000
aggressorCorpID: 00000000
aggressorID: 90610935
armorValue: 1.0
hullValue: 1.0
shieldValue: 0.9999601081022226
solarSystemID: 30000142
89 Contact add notification level: 10
message: Hi it was nice meeting you. I have set you blue.
90 Contact edit notification TBD
91 Incursion Completed TBD
92 Corp Kicked TBD
93 Customs office has been attacked aggressorAllianceID: 00000000
aggressorCorpID: 00000000
aggressorID: 90610935
planetID: 40009081
planetTypeID: 2063
shieldLevel: 0.0
solarSystemID: 30000142
typeID: 2233
94 Customs office has entered reinforced TBD
95 Customs office has been transferred characterLinkData:
- showinfo
- 1375
- 90610935
characterName: CCP Guard
fromCorporationLinkData:
- showinfo
- 2
- 00000000
fromCorporationName: Foo Bar Corp
solarSystemLinkData:
- showinfo
- 5
- 30000142
solarSystemName: Jita
structureLinkData:
- showinfo
- 32226
- 1008433208457
structureName: Some random POCO
toCorporationLinkData:
- showinfo
- 2
- 00000001
toCorporationName: Bar Foo Corp
96 FW Alliance Warning TBD
97 FW Alliance Kick TBD
98 AllWarCorpJoined Msg TBD
99 Ally Joined Defender TBD
100 Ally Has Joined a War Aggressor TBD
101 Ally Joined War Ally TBD
102 New war system: entity is offering assistance in a war. TBD
103 War Surrender Offer TBD
104 War Surrender Declined TBD
105 FacWar LP Payout Kill TBD
106 FacWar LP Payout Event TBD
107 FacWar LP Disqualified Eventd TBD
108 FacWar LP Disqualified Kill TBD
109 Alliance Contract Cancelled TBD
110 War Ally Declined Offer TBD
111 Your Bounty Was Claimed bounty: 11111.0
victimID: 00000000
112 Bounty placed (Char) TBD
113 Bounty Placed (Corp) TBD
114 Bounty Placed (Alliance) TBD
115 Kill Right Available charID: 00000000
price: 0.0
toEntityID: 00000000
116 Kill right Available Open charID: 00000000
price: 0.0
117 Kill Right Earned TBD
118 Kill right Used TBD
119 Kill Right Unavailable charID: 00000000
toEntityID: 00000000
120 Kill Right Unavailable Open charID: 00000000
121 Declare War TBD
122 Offered Surrender TBD
123 Accepted Surrender TBD
124 Made War Mutual TBD
125 Retracts War TBD
126 Offered To Ally TBD
127 Accepted Ally TBD
128 Character Application Accept applicationText: Hey, this is my alt.
charID: 900000000
corpID: 000000001
129 Character Application Reject TBD
130 Character Application Withdraw applicationText: Hey, this is my alt.
charID: 900000000
corpID: 000000001
138 Clone activated cloneStationID: 60000000
corpStationID: 60000001
lastCloned: 130975015800000000
podKillerID: 100000000
140 Loss report available killMailHash: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
killMailID: 00000000
victimShipTypeID: 596
141 Kill report available killMailHash: a415ab5cc17c8c093c015ccdb7e552aee7911aa4
killMailID: 00000000
victimID: 000000001
victimShipTypeID: 596
147 Entosis Link started solarSystemID: 30000142
structureTypeID: 28159
148 Entosis Link enabled a module solarSystemID: 30000142
structureTypeID: 28159
149 Entosis Link disabled a module solarSystemID: 30000142
structureTypeID: 28159
Applies to
Notifications

Retrieve character notification headers.

  • Path: /char/Notifications.xml.aspx
  • Cache timer: 30 minutes
  • Access mask: 16384
  • Parameters:
Argument Type Description
characterID long Character ID for which notification headers will be retrieved
Sample Response
<result>
  <rowset name="notifications" key="notificationID" columns="notificationID,typeID,senderID,senderName,sentDate,read">
    <row notificationID="399058968" typeID="73" senderID="3017794" senderName="Some guy" sentDate="2012-12-22 23:34:00" read="0" />
  </rowset>
</result>
Result Data
notifications rowset Rowset containing 1 row per notification header.
notificationID long Unique notification ID.
typeID int [1] Type ID describing the notification.
senderID long ID of entity which sent notification.
senderName string Name of entity which sent notification.
sentDate datetime Date when notification was sent.
read boolean 1 if this notification has been read in the EVE client, 0 otherwise.
Notification Types
TypeID Description
1 Legacy
2 Character deleted
3 Give medal to character
4 Alliance maintenance bill
5 Alliance war declared
6 Alliance war surrender
7 Alliance war retracted
8 Alliance war invalidated by Concord
9 Bill issued to a character
10 Bill issued to corporation or alliance
11 Bill not paid because there's not enough ISK available
12 Bill, issued by a character, paid
13 Bill, issued by a corporation or alliance, paid
14 Bounty claimed
15 Clone activated
16 New corp member application
17 Corp application rejected
18 Corp application accepted
19 Corp tax rate changed
20 Corp news report, typically for shareholders
21 Player leaves corp
22 Corp news, new CEO
23 Corp dividend/liquidation, sent to shareholders
24 Corp dividend payout, sent to shareholders
25 Corp vote created
26 Corp CEO votes revoked during voting
27 Corp declares war
28 Corp war has started
29 Corp surrenders war
30 Corp retracts war
31 Corp war invalidated by Concord
32 Container password retrieval
33 Contraband or low standings cause an attack or items being confiscated
34 First ship insurance
35 Ship destroyed, insurance payed
36 Insurance contract invalidated/runs out
37 Sovereignty claim fails (alliance)
38 Sovereignty claim fails (corporation)
39 Sovereignty bill late (alliance)
40 Sovereignty bill late (corporation)
41 Sovereignty claim lost (alliance)
42 Sovereignty claim lost (corporation)
43 Sovereignty claim acquired (alliance)
44 Sovereignty claim acquired (corporation)
45 Alliance anchoring alert
46 Alliance structure turns vulnerable
47 Alliance structure turns invulnerable
48 Sovereignty disruptor anchored
49 Structure won/lost
50 Corp office lease expiration notice
51 Clone contract revoked by station manager
52 Corp member clones moved between stations
53 Clone contract revoked by station manager
54 Insurance contract expired
55 Insurance contract issued
56 Jump clone destroyed
57 Jump clone destroyed
58 Corporation joining factional warfare
59 Corporation leaving factional warfare
60 Corporation kicked from factional warfare on startup because of too low standing to the faction
61 Character kicked from factional warfare on startup because of too low standing to the faction
62 Corporation in factional warfare warned on startup because of too low standing to the faction
63 Character in factional warfare warned on startup because of too low standing to the faction
64 Character loses factional warfare rank
65 Character gains factional warfare rank
66 Agent has moved
67 Mass transaction reversal message
68 Reimbursement message
69 Agent locates a character
70 Research mission becomes available from an agent
71 Agent mission offer expires
72 Agent mission times out
73 Agent offers a storyline mission
74 Tutorial message sent on character creation
75 Tower alert
76 Tower resource alert
77 Station aggression message
78 Station state change message
79 Station conquered message
80 Station aggression message
81 Corporation requests joining factional warfare
82 Corporation requests leaving factional warfare
83 Corporation withdrawing a request to join factional warfare
84 Corporation withdrawing a request to leave factional warfare
85 Corporation liquidation
86 Territorial Claim Unit under attack
87 Sovereignty Blockade Unit under attack
88 Infrastructure Hub under attack
89 Contact add notification
90 Contact edit notification
91 Incursion Completed
92 Corp Kicked
93 Customs office has been attacked
94 Customs office has entered reinforced
95 Customs office has been transferred
96 FW Alliance Warning
97 FW Alliance Kick
98 AllWarCorpJoined Msg
99 Ally Joined Defender
100 Ally Has Joined a War Aggressor
101 Ally Joined War Ally
102 New war system: entity is offering assistance in a war.
103 War Surrender Offer
104 War Surrender Declined
105 FacWar LP Payout Kill
106 FacWar LP Payout Event
107 FacWar LP Disqualified Eventd
108 FacWar LP Disqualified Kill
109 Alliance Contract Cancelled
110 War Ally Declined Offer
111 Your Bounty Was Claimed
112 Bounty placed (Char)
113 Bounty Placed (Corp)
114 Bounty Placed (Alliance)
115 Kill Right Available
116 Kill right Available Open
117 Kill Right Earned
118 Kill right Used
119 Kill Right Unavailable
120 Kill Right Unavailable Open
121 Declare War
122 Offered Surrender
123 Accepted Surrender
124 Made War Mutual
125 Retracts War
126 Offered To Ally
127 Accepted Ally
128 Character Application Accept
129 Character Application Reject
130 Character Application Withdraw
138 Clone activated
140 Loss report available
141 Kill report available
147 Entosis Link started
148 Entosis Link enabled a module
149 Entosis Link disabled a module
131 DustAppAcceptedMsg ?
132 DistrictAttacked ?
133 BattlePunishFriendlyFire ?
134 BountyESSTaken ?
135 BountyESSShared ?
136 IndustryTeamAuctionWon ?
137 IndustryTeamAuctionLost ?
139 Corporation invitation accepted (CorpAppInvitedMsg)
142 Corporation application rejected (CorpAppRejectCustomMsg)
143 Friendly fire enable timer started (CorpFriendlyFireEnableTimerStarted)
144 Friendly fire disable timer started (CorpFriendlyFireDisableTimerStarted)
145 Friendly fire enable timer completed (CorpFriendlyFireEnableTimerCompleted)
146 Friendly fire disable timer completed (CorpFriendlyFireDisableTimerCompleted)
152 Infrastructure hub bill about to expire (InfrastructureHubBillAboutToExpire)
160 Sovereignty structure reinforced (SovStructureReinforced)
161 SovCommandNodeEventStarted ?
162 Sovereignty structure destroyed (SovStructureDestroyed)
163 SovStationEnteredFreeport ?
164 IHubDestroyedByBillFailure ?
166 BuddyConnectContactAdd ?
165 Alliance capital changed (AllianceCapitalChanged)
167 Sovereignty structure self destruction requested (SovStructureSelfDestructRequested)
168 Sovereignty structure self destruction canceled (SovStructureSelfDestructCancel)
169 Sovereignty structure self destruction completed (SovStructureSelfDestructFinished)
181 Structure fuel alert (StructureFuelAlert)
182 Structure anchoring started (StructureAnchoring)
183 Structure unanchoring started (StructureUnanchoring)
184 Structure under attack (StructureUnderAttack)
185 Structure Online (StructureOnline)
186 Structure lost shields (StructureLostShields)
187 Structure lost Armor (StructureLostArmor)
188 Structure destroyed (StructureDestroyed)
198 Structure service offline (StructureServicesOffline)
199 Item delivered (StructureItemsDelivered)
201 StructureCourierContractChanged ?
1012 OperationFinished ?
1030 Game time received (GameTimeReceived)
1031 Game time sent (GameTimeSent)
Notes
  • The first call to this endpoint returns the latest 200 notifications received by the character within the last week.
  • Subsequent requests return only the new items received since the last request.
  • You can request new items every 30 minutes.
  • To “reset the timer” and retrieve from the start, you’ll need to wait 6 hours before calling this endpoint.
Known POS States
State Name Notes
0 Unanchored Also unanchoring? Has valid stateTimestamp. Note that moonID is zero for unanchored Towers, but locationID will still yield the solar system ID.
1 Anchored / Offline No time information stored.
2 Onlining Will be online at time = onlineTimestamp.
3 Reinforced Until time = stateTimestamp.
4 Online Continuously since time = onlineTimestamp.
Applies to
Starbase List

Returns list of corporation starbases.

  • Path: /corp/StarbaseList.xml.aspx
  • Cache timer: 6 hours
  • Access mask: 524288
  • Parameters: none
Sample Response
<result>
    <rowset name="starbases" key="itemID" columns="itemID,typeID,locationID,moonID,state,stateTimestamp,onlineTimestamp,standingOwnerID">
        <row itemID="100449451" typeID="27538" locationID="30000163" moonID="40010395" state="4" stateTimestamp="2011-12-08 20:03:41" onlineTimestamp="2009-06-04 07:00:51" standingOwnerID="673381830"/>
        <row itemID="638317993" typeID="27538" locationID="30000163" moonID="40010366" state="4" stateTimestamp="2011-12-08 19:33:36" onlineTimestamp="2008-09-17 03:52:55" standingOwnerID="673381830"/>
    </rowset>
</result>
Result Data
Name Data Type Description
itemID long Unique ID for this POS. This is used to request details via the StarbaseDetail API page.
typeID long Type ID. References the invTypes table.
locationID long Solar system ID. References the mapSolarSystems and mapDenormalize tables.
moonID long Celestial object ID. References the mapDenormalize table.
state int Mode of the POS. See known POS states.
stateTimestamp datetime Depends on the state. See known POS states.
onlineTimestamp datetime When the POS will be online or most recently was put online. See known POS states.
standingOwnerID long ID of standings holder - corporation or alliance
StarbaseDetail

Returns details for specified starbase.

  • Path: /corp/StarbaseDetail.xml.aspx

  • Cache timer: 1 hour

  • Access mask: 131072

  • Parameters:

    Argument Type Description
    itemID long ItemID of the POS as given in the starbase list
Sample Response
<result>
    <state>4</state>
    <stateTimestamp>2009-05-02 21:31:36</stateTimestamp>
    <onlineTimestamp>2009-04-18 23:30:29</onlineTimestamp>
    <generalSettings>
        <usageFlags>3</usageFlags>
        <deployFlags>0</deployFlags>
        <allowCorporationMembers>1</allowCorporationMembers>
        <allowAllianceMembers>1</allowAllianceMembers>
    </generalSettings>
    <combatSettings>
        <useStandingsFrom ownerID="154683985" />
        <onStandingDrop standing="990" />
        <onStatusDrop enabled="0" standing="0" />
        <onAggression enabled="0" />
        <onCorporationWar enabled="1" />
    </combatSettings>
    <rowset name="fuel" key="typeID" columns="typeID,quantity">
        <row typeID="16275" quantity="2447" />
        <row typeID="16274" quantity="18758" />
        <row typeID="9848" quantity="166" />
        <row typeID="9832" quantity="332" />
        <row typeID="3689" quantity="332" />
        <row typeID="44" quantity="166" />
        <row typeID="16273" quantity="6142" />
        <row typeID="16272" quantity="5644" />
        <row typeID="3683" quantity="1162" />
    </rowset>
</result>
ResultData
Name Data type Description
state int Current POS state. See known POS states.
stateTimestamp datetime Depend on current POS stete. See known POS states.
onlineTimestamp datetime When the POS will be online or most recently was put online. See known POS states.
generalSettings
usageFlags int Access restrictions to the POS fuel bay are encoded in this 4 bit field. See flags description.
deployFlags int Access restrictions to who is able to operate this POS are encoded in this 8 bit field. See flags description.
allowCorporationMembers int POS Usage restriction for corporation members. 1- allowed, 0 - not allowed.
allowAllianceMembers int POS Usage restriction for alliance members. 1- allowed, 0 - not allowed.
combatSettings
useStandingsFrom Represents POS "Use alliance standings" settings.
ownerID long ID of standings holder - corporation or alliance.
onStandingDrop Represents POS "Attack if standings lower than" settings.
standing int Standing below that POS will attack targets.
onStatusDrop Represents POS "Attack if security status lower than" and "Attack if other security status is dropping" settings.
standing int Represents POS "Attack if security status lower than" settings.
enabled int "Attack if other security status is dropping" 1 = enabled, 0 = disabled
onAggression Represents POS "Attack if agression" setting
enabled int 1 = enabled, 0 = disabled
onCorporationWar Represents POS "Attack if at war" settings
enabled int 1 = enabled, 0 = disabled
rowset fuel
typeID long typeID of fuel that presents in POS fuel bay or strontium bay
quantity int quantity of specified fuel type in POS fuel bay or strontium bay
Flags Description
  • How it works: There are two flags - the usage flag and the deploy flag. Each flags contain the information about which roles can perform which activity for the POS. That information is encoded in a 4 bit (usage) or 8 bit (deploy) field. A role is encoded in 2 bits, so each flag is divided into sections of 2 bits. Each of that sections correspond with a role.
  • Roles: The role needed to get access to a POS facilities is encoded in 2 bits:
  • 00 'Starbase Config'
  • 01 'Corporation Members'
  • 10 'Alliance Members'
  • 11 'Starbase Fuel Tech'
  • Usage Flags: Access restrictions to the POS fuel bay are encoded in this 4 bit field.

    Bits Role
    0, 1 view
    2, 3 take

Example:

usage field = 3 decimal => 0011 binary

bits 0,1 = 11 => Starbase Fuel Tech can view

bits 2,3 = 00 => Starbase Config can take

  • Deploy Flags: Access restrictions to who is able to change state of this POS are encoded in this 8 bit field.
Bits Role
0, 1 anchor
2, 3 unanchor
4, 5 online
6, 7 offline

Example:

deploy field = 99 decimal => 01100011 binary

bits 0,1 = 11 => Starbase Fuel Tech can anchor

bits 2,3 = 00 => Starbase Config can unanchor

bits 4,5 = 10 => Alliance Members can online

bits 6,7 = 01 => Corporation Members can offline

Industry Job Status
Value Meaning
1 Active
2 Paused (Facility Offline)
3 Ready
101 Delivered
102 Cancelled
103 Reverted
Applies to
IndustryJobs

Retrieve unfinished character industry jobs.

  • Path: /char/IndustryJobs.xml.aspx

  • Cache timer: 15 minutes

  • Access mask: 128

  • Parameters:

    Argument Type Description
    characterID long ID of character. Optional only if the key is character specific, otherwise mandatory.
Sample Response
<result>
    <rowset name="jobs" key="jobID" columns="jobID,installerID,installerName,facilityID,solarSystemID,solarSystemName,stationID,activityID,blueprintID,blueprintTypeID,blueprintTypeName,blueprintLocationID,outputLocationID,runs,cost,teamID,licensedRuns,probability,productTypeID,productTypeName,status,timeInSeconds,startDate,endDate,pauseDate,completedDate,completedCharacterID,successfulRuns">
        <row jobID="229136101" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="1" blueprintID="1015116533326"
             blueprintTypeID="2047" blueprintTypeName="Damage Control I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="118.00" teamID="0" licensedRuns="200" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="548"
             startDate="2014-07-19 15:47:06" endDate="2014-07-19 15:56:14" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="1"/>
        <row jobID="229135883" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194"
             solarSystemName="Cleyd" stationID="60006382" activityID="3" blueprintID="1015321999447" 
             blueprintTypeID="25862" blueprintTypeName="Salvager I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="29.00" teamID="0" licensedRuns="60" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="702" 
             startDate="2014-07-19 13:40:59" endDate="2014-07-19 13:52:41" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="2"/>
        <row jobID="229135882" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="4" blueprintID="1015322244720" 
             blueprintTypeID="785" blueprintTypeName="Miner I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="8.00" teamID="0" licensedRuns="200" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="225" 
             startDate="2014-07-19 13:40:32" endDate="2014-07-19 13:44:17" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="3"/>
        <row jobID="229135868" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="5" blueprintID="1015322013688" blueprintTypeID="10040" 
             blueprintTypeName="Civilian Shield Booster Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="23" cost="2768.00" teamID="0" licensedRuns="99" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="389367" 
             startDate="2014-07-19 13:22:51" endDate="2014-07-24 01:32:18" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="4"/>
        <row jobID="229136102" installerID="498338451" installerName="Qoi" facilityID="1015338129652" solarSystemID="30005195"
             solarSystemName="Vecamia" stationID="1015338119317" activityID="7" blueprintID="1015338143203" blueprintTypeID="30614"
             blueprintTypeName="Intact Armor Nanobot" blueprintLocationID="1015338129652"
             outputLocationID="1015338129652" runs="1" cost="641.00" teamID="0" licensedRuns="300" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="3600"
             startDate="2014-07-19 15:48:33" endDate="2014-07-19 16:48:33" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="5"/>
        <row jobID="229136071" installerID="498338451" installerName="Qoi" facilityID="1015338129650" solarSystemID="30005195" 
             solarSystemName="Vecamia" stationID="1015338119317" activityID="8" blueprintID="1015338137468" blueprintTypeID="1137" 
             blueprintTypeName="Antimatter Charge S Blueprint" blueprintLocationID="1015338129650"
             outputLocationID="1015338129650" runs="1" cost="4.00" teamID="0" licensedRuns="600" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="11400" 
             startDate="2014-07-19 15:22:40" endDate="2014-07-19 18:32:40" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="6"/>
    </rowset>
</result>
Result Data
jobs rowset Rowset containing 1 row per industry job.
jobID long Unique job ID.
installerID long Character ID of the character which installed this job.
installerName char Name of character which installed this job.
facilityID int [1], [2], [3] Facility ID where this job is running (see cross-references).
solarSystemID int [1] Solar system where facility is located.
solarSystemName string Name of solar system where facility is located.
stationID int [1], [2], [3], [4] Station ID where industry facility is located.
activityID int [1] Job activity ID (see cross-reference).
blueprintID long [1] Blueprint asset item ID.
blueprintTypeID int [1], [2], [3], [4], [5] Blueprint type ID.
blueprintTypeName char Name of installed blueprint.
blueprintLocationID int Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility.
outputLocationID int Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility.
runs int Number of runs for a manufacturing job, or number of copies to make for a blueprint copy.
cost decimal The sume of job installation fee and industry facility tax.
teamID int N/A - retired in Proteus
licensedRuns int Number of runs blueprint is licensed for.
probability float Chance of success for invention.
productTypeID int [1], [2], [3], [4], [5] Type ID of product (manufactured, copied or invented).
productTypeName int Type name of product (manufactured, copied or invented).
status int [1] Job status (see cross-reference).
timeInSeconds int Job duration in seconds.
startDate datetime Time when this job started.
endDate datetime Time when this job finished.
pauseDate datetime Time when this job was paused (i.e. time when the facility where this job was installed went offline).
completedDate datetime Time when this job was completed.
completedCharacterID long Character ID of character which completed this job.
successfulRuns int Number of successful runs for this job. Equal to runs unless this is an invention job.
Notes
  • This endpoint returns unfinished character jobs (e.g. started from a personal hangar). Use Character - IndustryJobsHistory to retrieve finished jobs.
  • This endpoint returns a maximum of 10000 rows and at most 90 days worth of data.
  • If a job is cancelled manually, then the completedCharacterID identifies the character who cancelled the job.
  • If a job is cancelled because the facility was unanchored, then completedCharacterID is 0.
Known Bugs
  • The licensedRuns field is showing undefined values for Manufacturing from a BPO, Reverse Engineering, Invention, ME, TE research.
  • productTypeID and productTypeName for invention jobs with only one possible output type will remain empty until the job finishes.
  • Status does not appear to change for a “ready” job, you must inspect timestamps to find when the job finishes.
IndustryJobsHistory

Retrieve finished character industry jobs.

  • Path: /char/IndustryJobsHistory.xml.aspx

  • Cache timer: 6 hours

  • Access mask: 128

  • Parameters:

    Argument Type Description
    characterID long ID of character. Optional only if the key is character specific, otherwise mandatory.
Sample Response
<result>
    <rowset name="jobs" key="jobID" columns="jobID,installerID,installerName,facilityID,solarSystemID,solarSystemName,stationID,activityID,blueprintID,blueprintTypeID,blueprintTypeName,blueprintLocationID,outputLocationID,runs,cost,teamID,licensedRuns,probability,productTypeID,productTypeName,status,timeInSeconds,startDate,endDate,pauseDate,completedDate,completedCharacterID,successfulRuns">
        <row jobID="229136101" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="1" blueprintID="1015116533326"
             blueprintTypeID="2047" blueprintTypeName="Damage Control I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="118.00" teamID="0" licensedRuns="200" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="548"
             startDate="2014-07-19 15:47:06" endDate="2014-07-19 15:56:14" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="1"/>
        <row jobID="229135883" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194"
             solarSystemName="Cleyd" stationID="60006382" activityID="3" blueprintID="1015321999447" 
             blueprintTypeID="25862" blueprintTypeName="Salvager I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="29.00" teamID="0" licensedRuns="60" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="702" 
             startDate="2014-07-19 13:40:59" endDate="2014-07-19 13:52:41" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="2"/>
        <row jobID="229135882" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="4" blueprintID="1015322244720" 
             blueprintTypeID="785" blueprintTypeName="Miner I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="8.00" teamID="0" licensedRuns="200" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="225" 
             startDate="2014-07-19 13:40:32" endDate="2014-07-19 13:44:17" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="3"/>
        <row jobID="229135868" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="5" blueprintID="1015322013688" blueprintTypeID="10040" 
             blueprintTypeName="Civilian Shield Booster Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="23" cost="2768.00" teamID="0" licensedRuns="99" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="389367" 
             startDate="2014-07-19 13:22:51" endDate="2014-07-24 01:32:18" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="4"/>
        <row jobID="229136102" installerID="498338451" installerName="Qoi" facilityID="1015338129652" solarSystemID="30005195"
             solarSystemName="Vecamia" stationID="1015338119317" activityID="7" blueprintID="1015338143203" blueprintTypeID="30614"
             blueprintTypeName="Intact Armor Nanobot" blueprintLocationID="1015338129652"
             outputLocationID="1015338129652" runs="1" cost="641.00" teamID="0" licensedRuns="300" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="3600"
             startDate="2014-07-19 15:48:33" endDate="2014-07-19 16:48:33" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="5"/>
        <row jobID="229136071" installerID="498338451" installerName="Qoi" facilityID="1015338129650" solarSystemID="30005195" 
             solarSystemName="Vecamia" stationID="1015338119317" activityID="8" blueprintID="1015338137468" blueprintTypeID="1137" 
             blueprintTypeName="Antimatter Charge S Blueprint" blueprintLocationID="1015338129650"
             outputLocationID="1015338129650" runs="1" cost="4.00" teamID="0" licensedRuns="600" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="11400" 
             startDate="2014-07-19 15:22:40" endDate="2014-07-19 18:32:40" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="6"/>
    </rowset>
</result>
Result Data
jobs rowset Rowset containing 1 row per industry job.
jobID long Unique job ID.
installerID long Character ID of the character which installed this job.
installerName char Name of character which installed this job.
facilityID int [1], [2], [3] Facility ID where this job is running (see cross-references).
solarSystemID int [1] Solar system where facility is located.
solarSystemName string Name of solar system where facility is located.
stationID int [1], [2], [3], [4] Station ID where industry facility is located.
activityID int [1] Job activity ID (see cross-reference).
blueprintID long [1] Blueprint asset item ID.
blueprintTypeID int [1], [2], [3], [4], [5] Blueprint type ID.
blueprintTypeName char Name of installed blueprint.
blueprintLocationID int Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility.
outputLocationID int Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility.
runs int Number of runs for a manufacturing job, or number of copies to make for a blueprint copy.
cost decimal The sume of job installation fee and industry facility tax.
teamID int N/A - retired in Proteus
licensedRuns int Number of runs blueprint is licensed for.
probability float Chance of success for invention.
productTypeID int [1], [2], [3], [4], [5] Type ID of product (manufactured, copied or invented).
productTypeName int Type name of product (manufactured, copied or invented).
status int [1] Job status (see cross-reference).
timeInSeconds int Job duration in seconds.
startDate datetime Time when this job started.
endDate datetime Time when this job finished.
pauseDate datetime Time when this job was paused (i.e. time when the facility where this job was installed went offline).
completedDate datetime Time when this job was completed.
completedCharacterID long Character ID of character which completed this job.
successfulRuns int Number of successful runs for this job. Equal to runs unless this is an invention job.
Notes
  • This endpoint returns finished character jobs (e.g. started from a personal hangar). Use Character - IndustryJobs to retrieve unfinished jobs.
  • This endpoint returns a maximum of 10000 rows and at most 90 days worth of data.
  • If a job is cancelled manually, then the completedCharacterID identifies the character who cancelled the job.
  • If a job is cancelled because the facility was unanchored, then completedCharacterID is 0.
Known Bugs
  • The licensedRuns field is showing undefined values for Manufacturing from a BPO, Reverse Engineering, Invention, ME, TE research.
  • productTypeID and productTypeName for invention jobs with only one possible output type will remain empty until the job finishes.
  • Status does not appear to change for a “ready” job, you must inspect timestamps to find when the job finishes.
IndustryJobs

Retrieve unfinished corporation industry jobs.

  • Path: /corp/IndustryJobs.xml.aspx
  • Cache timer: 15 minutes
  • Access mask: 128
  • Parameters: none
Sample Response
<result>
    <rowset name="jobs" key="jobID" columns="jobID,installerID,installerName,facilityID,solarSystemID,solarSystemName,stationID,activityID,blueprintID,blueprintTypeID,blueprintTypeName,blueprintLocationID,outputLocationID,runs,cost,teamID,licensedRuns,probability,productTypeID,productTypeName,status,timeInSeconds,startDate,endDate,pauseDate,completedDate,completedCharacterID,successfulRuns">
        <row jobID="229136101" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="1" blueprintID="1015116533326"
             blueprintTypeID="2047" blueprintTypeName="Damage Control I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="118.00" teamID="0" licensedRuns="200" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="548"
             startDate="2014-07-19 15:47:06" endDate="2014-07-19 15:56:14" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="1"/>
        <row jobID="229135883" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194"
             solarSystemName="Cleyd" stationID="60006382" activityID="3" blueprintID="1015321999447" 
             blueprintTypeID="25862" blueprintTypeName="Salvager I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="29.00" teamID="0" licensedRuns="60" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="702" 
             startDate="2014-07-19 13:40:59" endDate="2014-07-19 13:52:41" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="2"/>
        <row jobID="229135882" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="4" blueprintID="1015322244720" 
             blueprintTypeID="785" blueprintTypeName="Miner I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="8.00" teamID="0" licensedRuns="200" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="225" 
             startDate="2014-07-19 13:40:32" endDate="2014-07-19 13:44:17" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="3"/>
        <row jobID="229135868" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="5" blueprintID="1015322013688" blueprintTypeID="10040" 
             blueprintTypeName="Civilian Shield Booster Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="23" cost="2768.00" teamID="0" licensedRuns="99" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="389367" 
             startDate="2014-07-19 13:22:51" endDate="2014-07-24 01:32:18" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="4"/>
        <row jobID="229136102" installerID="498338451" installerName="Qoi" facilityID="1015338129652" solarSystemID="30005195"
             solarSystemName="Vecamia" stationID="1015338119317" activityID="7" blueprintID="1015338143203" blueprintTypeID="30614"
             blueprintTypeName="Intact Armor Nanobot" blueprintLocationID="1015338129652"
             outputLocationID="1015338129652" runs="1" cost="641.00" teamID="0" licensedRuns="300" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="3600"
             startDate="2014-07-19 15:48:33" endDate="2014-07-19 16:48:33" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="5"/>
        <row jobID="229136071" installerID="498338451" installerName="Qoi" facilityID="1015338129650" solarSystemID="30005195" 
             solarSystemName="Vecamia" stationID="1015338119317" activityID="8" blueprintID="1015338137468" blueprintTypeID="1137" 
             blueprintTypeName="Antimatter Charge S Blueprint" blueprintLocationID="1015338129650"
             outputLocationID="1015338129650" runs="1" cost="4.00" teamID="0" licensedRuns="600" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="11400" 
             startDate="2014-07-19 15:22:40" endDate="2014-07-19 18:32:40" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="6"/>
    </rowset>
</result>
Result Data
jobs rowset Rowset containing 1 row per industry job.
jobID long Unique job ID.
installerID long Character ID of the character which installed this job.
installerName char Name of character which installed this job.
facilityID int [1], [2], [3] Facility ID where this job is running (see cross-references).
solarSystemID int [1] Solar system where facility is located.
solarSystemName string Name of solar system where facility is located.
stationID int [1], [2], [3], [4] Station ID where industry facility is located.
activityID int [1] Job activity ID (see cross-reference).
blueprintID long [1] Blueprint asset item ID.
blueprintTypeID int [1], [2], [3], [4], [5] Blueprint type ID.
blueprintTypeName char Name of installed blueprint.
blueprintLocationID int Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility.
outputLocationID int Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility.
runs int Number of runs for a manufacturing job, or number of copies to make for a blueprint copy.
cost decimal The sume of job installation fee and industry facility tax.
teamID int N/A - retired in Proteus
licensedRuns int Number of runs blueprint is licensed for.
probability float Chance of success for invention.
productTypeID int [1], [2], [3], [4], [5] Type ID of product (manufactured, copied or invented).
productTypeName string Type name of product (manufactured, copied or invented).
status int [1] Job status (see cross-reference).
timeInSeconds int Job duration in seconds.
startDate datetime Time when this job started.
endDate datetime Time when this job finished.
pauseDate datetime Time when this job was paused (i.e. time when the facility where this job was installed went offline).
completedDate datetime Time when this job was completed.
completedCharacterID long Character ID of character which completed this job.
successfulRuns int Number of successful runs for this job. Equal to runs unless this is an invention job.
Notes
  • This endpoint returns unfinished corporation jobs (e.g. started from a corporation hangar). Use Corporation - IndustryJobsHistory to retrieve finished jobs.
  • This endpoint returns a maximum of 10000 rows and at most 90 days worth of data.
  • If a job is cancelled manually, then the completedCharacterID identifies the character who cancelled the job.
  • If a job is cancelled because the facility was unanchored, then completedCharacterID is 0.
Known Bugs
  • The licensedRuns field is showing undefined values for Manufacturing from a BPO, Reverse Engineering, Invention, ME, TE research.
  • productTypeID and productTypeName for invention jobs with only one possible output type will remain empty until the job finishes.
  • Status does not appear to change for a “ready” job, you must inspect timestamps to find when the job finishes.
IndustryJobsHistory

Retrieve finished corporation industry jobs.

  • Path: /corp/IndustryJobsHistory.xml.aspx
  • Cache timer: 6 hours
  • Access mask: 128
  • Parameters: none
Sample Response
<result>
    <rowset name="jobs" key="jobID" columns="jobID,installerID,installerName,facilityID,solarSystemID,solarSystemName,stationID,activityID,blueprintID,blueprintTypeID,blueprintTypeName,blueprintLocationID,outputLocationID,runs,cost,teamID,licensedRuns,probability,productTypeID,productTypeName,status,timeInSeconds,startDate,endDate,pauseDate,completedDate,completedCharacterID,successfulRuns">
        <row jobID="229136101" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="1" blueprintID="1015116533326"
             blueprintTypeID="2047" blueprintTypeName="Damage Control I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="118.00" teamID="0" licensedRuns="200" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="548"
             startDate="2014-07-19 15:47:06" endDate="2014-07-19 15:56:14" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="1"/>
        <row jobID="229135883" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194"
             solarSystemName="Cleyd" stationID="60006382" activityID="3" blueprintID="1015321999447" 
             blueprintTypeID="25862" blueprintTypeName="Salvager I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="29.00" teamID="0" licensedRuns="60" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="702" 
             startDate="2014-07-19 13:40:59" endDate="2014-07-19 13:52:41" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="2"/>
        <row jobID="229135882" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="4" blueprintID="1015322244720" 
             blueprintTypeID="785" blueprintTypeName="Miner I Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="1" cost="8.00" teamID="0" licensedRuns="200" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="225" 
             startDate="2014-07-19 13:40:32" endDate="2014-07-19 13:44:17" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="3"/>
        <row jobID="229135868" installerID="498338451" installerName="Qoi" facilityID="60006382" solarSystemID="30005194" 
             solarSystemName="Cleyd" stationID="60006382" activityID="5" blueprintID="1015322013688" blueprintTypeID="10040" 
             blueprintTypeName="Civilian Shield Booster Blueprint" blueprintLocationID="60006382" 
             outputLocationID="60006382" runs="23" cost="2768.00" teamID="0" licensedRuns="99" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="389367" 
             startDate="2014-07-19 13:22:51" endDate="2014-07-24 01:32:18" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="4"/>
        <row jobID="229136102" installerID="498338451" installerName="Qoi" facilityID="1015338129652" solarSystemID="30005195"
             solarSystemName="Vecamia" stationID="1015338119317" activityID="7" blueprintID="1015338143203" blueprintTypeID="30614"
             blueprintTypeName="Intact Armor Nanobot" blueprintLocationID="1015338129652"
             outputLocationID="1015338129652" runs="1" cost="641.00" teamID="0" licensedRuns="300" probability="0"
             productTypeID="0" productTypeName="" status="1" timeInSeconds="3600"
             startDate="2014-07-19 15:48:33" endDate="2014-07-19 16:48:33" pauseDate="0001-01-01 00:00:00"
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="5"/>
        <row jobID="229136071" installerID="498338451" installerName="Qoi" facilityID="1015338129650" solarSystemID="30005195" 
             solarSystemName="Vecamia" stationID="1015338119317" activityID="8" blueprintID="1015338137468" blueprintTypeID="1137" 
             blueprintTypeName="Antimatter Charge S Blueprint" blueprintLocationID="1015338129650"
             outputLocationID="1015338129650" runs="1" cost="4.00" teamID="0" licensedRuns="600" probability="0" 
             productTypeID="0" productTypeName="" status="1" timeInSeconds="11400" 
             startDate="2014-07-19 15:22:40" endDate="2014-07-19 18:32:40" pauseDate="0001-01-01 00:00:00" 
             completedDate="0001-01-01 00:00:00" completedCharacterID="0" successfulRuns="6"/>
    </rowset>
</result>
Result Data
jobs rowset Rowset containing 1 row per industry job.
jobID long Unique job ID.
installerID long Character ID of the character which installed this job.
installerName char Name of character which installed this job.
facilityID int [1], [2], [3] Facility ID where this job is running (see cross-references).
solarSystemID int [1] Solar system where facility is located.
solarSystemName string Name of solar system where facility is located.
stationID int [1], [2], [3], [4] Station ID where industry facility is located.
activityID int [1] Job activity ID (see cross-reference).
blueprintID long [1] Blueprint asset item ID.
blueprintTypeID int [1], [2], [3], [4], [5] Blueprint type ID.
blueprintTypeName char Name of installed blueprint.
blueprintLocationID int Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility.
outputLocationID int Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility.
runs int Number of runs for a manufacturing job, or number of copies to make for a blueprint copy.
cost decimal The sume of job installation fee and industry facility tax.
teamID int N/A - retired in Proteus
licensedRuns int Number of runs blueprint is licensed for.
probability float Chance of success for invention.
productTypeID int [1], [2], [3], [4], [5] Type ID of product (manufactured, copied or invented).
productTypeName string Type name of product (manufactured, copied or invented).
status int [1] Job status (see cross-reference).
timeInSeconds int Job duration in seconds.
startDate datetime Time when this job started.
endDate datetime Time when this job finished.
pauseDate datetime Time when this job was paused (e.g. time when the facility where this job was installed went offline).
completedDate datetime Time when this job was completed.
completedCharacterID long Character ID of character which completed this job.
successfulRuns int Number of successful runs for this job. Equal to runs unless this is an invention job.
Notes
  • This endpoint returns finished corporation jobs (e.g. started from a corporation hangar). Use Corporation - IndustryJobs to retrieve unfinished jobs.
  • This endpoint returns a maximum of 10000 rows and at most 90 days worth of data.
  • If a job is cancelled manually, then the completedCharacterID identifies the character who cancelled the job.
  • If a job is cancelled because the facility was unanchored, then completedCharacterID is 0.
Known Bugs
  • The licensedRuns field is showing undefined values for Manufacturing from a BPO, Reverse Engineering, Invention, ME, TE research.
  • productTypeID and productTypeName for invention jobs with only one possible output type will remain empty until the job finishes.
  • Status does not appear to change for a “ready” job, you must inspect timestamps to find when the job finishes.

Calls

Account
AccountStatus

Information about a player’s EVE account like creation time, minutes spent in game etc.

  • Path: /account/AccountStatus.xml.aspx
  • Cache timer: 1 hour
  • Access mask: 33554432
  • Parameters: none
Sample Response
<result>
    <paidUntil>2015-06-27 10:20:57</paidUntil>
    <createDate>2007-05-04 17:47:00</createDate>
    <logonCount>3177</logonCount>
    <logonMinutes>235243</logonMinutes>
    <rowset name="multiCharacterTraining" key="trainingEnd" columns="trainingEnd" />
</result>
Result Data
Name Data type Description
paidUntil datetime The date until which the account is currently subscribed
createDate datetime The date the account was created
logonCount long The number of times you logged into CCP's services
logonMinutes long The amount of time you actually spent logged on in the game
Notes
  • logonCount includes not only the game logons, but also forum logons, likely also EVEGate logons.
APIKeyInfo

Specifies the access rights of an API key.

  • Path: /account/APIKeyInfo.xml.aspx
  • Cache timer: 5 minutes
  • Access mask: 0
  • Parameters: none
Sample Response
<result>
    <key accessMask="134217727" type="Character" expires="">
        <rowset name="characters" key="characterID" columns="characterID,characterName,corporationID,corporationName,allianceID,allianceName,factionID,factionName">
            <row characterID="1655827332" characterName="Hel O'Ween" corporationID="1226284052" corporationName="Men On A Mission" allianceID="0" allianceName="" factionID="0" factionName="" />
        </rowset>
    </key>
</result>
Result Data
accessMask long The bitwise number of the XML API endpoints this API key can query.
type char The access level of the API key (i.e. Account, Character, Corporation).
expires datetime The date the API key expires. This value will be empty if the key is set to not expire.
name rowset Rowset containing 1 row per character included in the API key.
characterID long The ID of the character for the requested data.
characterName char The name of the character for the requested data.
corporationID long The ID of the corporation for the requested data.
corporationName char The name of the corporation for the requested data.
allianceID long The ID of the alliance for the requested data.
allianceName char The name of the alliance for the requested data.
factionID long The ID of the faction for the requested data.
factionName char The name of the faction for the requested data.
Characters

Lists all characters included in this API key.

  • Path: /account/Characters.xml.aspx
  • Cache timer: 1 hour
  • Access mask: 0
  • Parameters: none
Sample Response
<result>
    <rowset name="characters" key="characterID" columns="name,characterID,corporationName,corporationID,allianceID,allianceName,factionID,factionName">
        <row name="Hel O'Ween" characterID="1655827332" corporationName="Men On A Mission" corporationID="1226284052" allianceID="0" allianceName="" factionID="0" factionName="" />
    </rowset>
</result>
Result Data
Name Data type Description
name char The name of the character for the requested data
characterID int The ID of the character for the requested data, from [char/CharacterList](char_characterlist.md). Only for /char/ endpoints. Optional when the API key is only valid for a single character.
corporationName char The name of the corporation of the character.
corporationID int The ID of the corporation of the character.
allianceName char The name of the alliance of the character.
allianceID int The ID of the alliance of the character.
factionName char The name of the faction of the character.
factionID int The ID of the faction of the character.
API
CallList

List of all selectable API endpoints/groups to which an API grants access to.

  • Path: /api/CallList.xml.aspx
  • Cache timer: 6 hours
  • Access mask: none
  • Parameters: none
Sample Response
<result>
    <rowset name="callGroups" key="groupID" columns="groupID,name,description">
        <row groupID="1" name="Account and Market" description="Market Orders, account balance and journal history." />
        <row groupID="7" name="Communications" description="Private communications such as contact lists, Eve Mail and Notifications." />
        <row groupID="5" name="Corporation Members" description="Member information for Corporations." />
        <row groupID="6" name="Outposts and Starbases" description="Outpost and Starbase information for Corporations" />
        <row groupID="3" name="Private Information" description="Personal information about the owner. Asset lists, skill training for characters, Private Calendar and more." />
        <row groupID="4" name="Public Information" description="Achievements such as Medals, Kill Mails, Fational Warfare Statistics and NPC Standings." />
        <row groupID="2" name="Science and Industry" description="Datacore production and job listing." />
    </rowset>
    <rowset name="calls" key="accessMask,type" columns="accessMask,type,name,groupID,description">
        <row accessMask="134217728" type="Character" name="Locations" groupID="3" description="Allows the fetching of coordinate and name data for items owned by the character." />
        <row accessMask="67108864" type="Character" name="Contracts" groupID="3" description="List of all Contracts the character is involved in." />
        <row accessMask="33554432" type="Character" name="AccountStatus" groupID="3" description="EVE player account status." />
        <row accessMask="16777216" type="Character" name="CharacterInfo" groupID="3" description="Sensitive Character Information, exposes account balance and last known location on top of the other Character Information call." />
        <row accessMask="8388608" type="Character" name="CharacterInfo" groupID="4" description="Character information, exposes skill points and current ship information on top of'Show Info'information." />
        <row accessMask="4194304" type="Character" name="WalletTransactions" groupID="1" description="Market transaction journal of character." />
        <row accessMask="2097152" type="Character" name="WalletJournal" groupID="1" description="Wallet journal of character." />
        <row accessMask="1048576" type="Character" name="UpcomingCalendarEvents" groupID="3" description="Upcoming events on characters calendar." />
        <row accessMask="524288" type="Character" name="Standings" groupID="4" description="NPC Standings towards the character." />
        <row accessMask="262144" type="Character" name="SkillQueue" groupID="3" description="Entire skill queue of character." />
        <row accessMask="131072" type="Character" name="SkillInTraining" groupID="3" description="Skill currently in training on the character. Subset of entire Skill Queue." />
        <row accessMask="65536" type="Character" name="Research" groupID="2" description="List of all Research agents working for the character and the progress of the research." />
        <row accessMask="32768" type="Character" name="NotificationTexts" groupID="7" description="Actual body of notifications sent to the character. Requires Notification access to function." />
        <row accessMask="16384" type="Character" name="Notifications" groupID="7" description="List of recent notifications sent to the character." />
        <row accessMask="8192" type="Character" name="Medals" groupID="4" description="Medals awarded to the character." />
        <row accessMask="4096" type="Character" name="MarketOrders" groupID="1" description="List of all Market Orders the character has made." />
        <row accessMask="2048" type="Character" name="MailMessages" groupID="7" description="List of all messages in the characters EVE Mail Inbox." />
        <row accessMask="1024" type="Character" name="MailingLists" groupID="7" description="List of all Mailing Lists the character subscribes to." />
        <row accessMask="512" type="Character" name="MailBodies" groupID="7" description="EVE Mail bodies. Requires MailMessages as well to function." />
        <row accessMask="256" type="Character" name="KillLog" groupID="4" description="Characters kill log." />
        <row accessMask="128" type="Character" name="IndustryJobs" groupID="2" description="Character jobs, completed and active." />
        <row accessMask="64" type="Character" name="FacWarStats" groupID="4" description="Characters Factional Warfare Statistics." />
        <row accessMask="32" type="Character" name="ContactNotifications" groupID="7" description="Most recent contact notifications for the character." />
        <row accessMask="16" type="Character" name="ContactList" groupID="7" description="List of character contacts and relationship levels." />
        <row accessMask="8" type="Character" name="CharacterSheet" groupID="3" description="Character Sheet information. Contains basic'Show Info'information along with clones, account balance, implants, attributes, skills, certificates and corporation roles." />
        <row accessMask="4" type="Character" name="CalendarEventAttendees" groupID="3" description="Event attendee responses. Requires UpcomingCalendarEvents to function." />
        <row accessMask="2" type="Character" name="AssetList" groupID="3" description="Entire asset list of character." />
        <row accessMask="1" type="Character" name="AccountBalance" groupID="1" description="Current balance of characters wallet." />
        <row accessMask="33554432" type="Corporation" name="MemberTrackingExtended" groupID="5" description="Extensive Member information. Time of last logoff, last known location and ship." />
        <row accessMask="16777216" type="Corporation" name="Locations" groupID="3" description="Allows the fetching of coordinate and name data for items owned by the corporation." />
        <row accessMask="8388608" type="Corporation" name="Contracts" groupID="3" description="List of recent Contracts the corporation is involved in." />
        <row accessMask="4194304" type="Corporation" name="Titles" groupID="5" description="Titles of corporation and the roles they grant." />
        <row accessMask="2097152" type="Corporation" name="WalletTransactions" groupID="1" description="Market transactions of all corporate accounts." />
        <row accessMask="1048576" type="Corporation" name="WalletJournal" groupID="1" description="Wallet journal for all corporate accounts." />
        <row accessMask="524288" type="Corporation" name="StarbaseList" groupID="6" description="List of all corporate starbases." />
        <row accessMask="262144" type="Corporation" name="Standings" groupID="4" description="NPC Standings towards corporation." />
        <row accessMask="131072" type="Corporation" name="StarbaseDetail" groupID="6" description="List of all settings of corporate starbases." />
        <row accessMask="65536" type="Corporation" name="Shareholders" groupID="1" description="Shareholders of the corporation." />
        <row accessMask="32768" type="Corporation" name="OutpostServiceDetail" groupID="6" description="List of all service settings of corporate outposts." />
        <row accessMask="16384" type="Corporation" name="OutpostList" groupID="6" description="List of all outposts controlled by the corporation." />
        <row accessMask="8192" type="Corporation" name="Medals" groupID="4" description="List of all medals created by the corporation." />
        <row accessMask="4096" type="Corporation" name="MarketOrders" groupID="1" description="List of all corporate market orders." />
        <row accessMask="2048" type="Corporation" name="MemberTrackingLimited" groupID="5" description="Limited Member information." />
        <row accessMask="1024" type="Corporation" name="MemberSecurityLog" groupID="5" description="Member role and title change log." />
        <row accessMask="512" type="Corporation" name="MemberSecurity" groupID="5" description="Member roles and titles." />
        <row accessMask="256" type="Corporation" name="KillLog" groupID="4" description="Corporation kill log." />
        <row accessMask="128" type="Corporation" name="IndustryJobs" groupID="2" description="Corporation jobs, completed and active." />
        <row accessMask="64" type="Corporation" name="FacWarStats" groupID="4" description="Corporations Factional Warfare Statistics." />
        <row accessMask="32" type="Corporation" name="ContainerLog" groupID="3" description="Corporate secure container acess log." />
        <row accessMask="16" type="Corporation" name="ContactList" groupID="7" description="Corporate contact list and relationships." />
        <row accessMask="8" type="Corporation" name="CorporationSheet" groupID="3" description="Exposes basic'Show Info'information as well as Member Limit and basic division and wallet info." />
        <row accessMask="4" type="Corporation" name="MemberMedals" groupID="5" description="List of medals awarded to corporation members." />
        <row accessMask="2" type="Corporation" name="AssetList" groupID="3" description="List of all corporation assets." />
        <row accessMask="1" type="Corporation" name="AccountBalance" groupID="1" description="Current balance of all corporation accounts." />
    </rowset>
</result>
Result Data
Name Data type Description
callGroups rows - list of the predefined API access groups
groupID long Group ID
name char Names of the predefined API access groups as listed at the API key management page
description char Description of the included access rights
calls rows - list of every access right
accessMask long Necessary access mask of an API key for accessing this API endpoint
type char Type of API access (Character, Corporation etc.) this mask grants
name char API endpoint name
groupID long callGroup (see above) to which this endpoint belongs
description char Describes which data can be access by this accessMask
Character
AccountBalance

Retrieve character account balance.

  • Path: /char/AccountBalance.xml.aspx

  • Cache timer: 15 minutes

  • Access mask: 1

  • Parameters:

    Argument Type Description
    characterID long ID of character
Sample Response
<result>
    <rowset name="accounts" key="accountID" columns="accountID,accountKey,balance">
        <row accountID="12636870" accountKey="1000" balance="1234567.89" />
    </rowset>
</result>
Result Data
Name Data type Description
accountID int ID of the account
accountKey int Account identifier
balance decimal Amount of ISK in this character's wallet
Notes
  • accountKey: This is always 1000 for a character’s account balance as opposed to a corporation, where accountKey ranges from 1000 to 1006 for the seven corporate wallet divisions.
Bookmarks

Retrieve character Bookmarks.

  • Path: /char/Bookmarks.xml.aspx

  • Cache timer: 1 hour

  • Access mask: 268435456

  • Parameters:

    Argument Type Description
    characterID long Character ID for which bookmarks will be requested
Sample Response
<result>
    <rowset name="folders" key="folderID" columns="folderID,folderName">
        <row folderID="0" folderName="">
            <rowset name="bookmarks" key="bookmarkID" columns="bookmarkID,creatorID,created,itemID,typeID,locationID,x,y,z,memo,note">
                <row bookmarkID="12" creatorID="90000001" created="2015-07-08 21:34:14" itemID="60014689" typeID="57" locationID="30004971" x="0" y="0" z="0" memo="Home Station" note="Our base of residence" />
                <row bookmarkID="13" creatorID="90000001" created="2015-07-08 21:35:07" itemID="40314792" typeID="8" locationID="30004971" x="0" y="0" z="0" memo="Sun" note="" />
            </rowset>
        </row>
        <row folderID="1" folderName="A lovely empty folder">
            <rowset name="bookmarks" key="bookmarkID" columns="bookmarkID,creatorID,created,itemID,typeID,locationID,x,y,z,memo,note" />
        </row>
        <row folderID="3" folderName="Sites">
            <rowset name="bookmarks" key="bookmarkID" columns="bookmarkID,creatorID,created,itemID,typeID,locationID,x,y,z,memo,note">
                <row bookmarkID="16" creatorID="90000001" created="2015-07-08 21:37:12" itemID="40314827" typeID="15" locationID="30004971" x="0" y="0" z="0" memo="Duripant VII - Asteroid Belt 2 ( Asteroid Belt )" note="" />
                <row bookmarkID="17" creatorID="90000001" created="2015-07-08 21:37:22" itemID="40314829" typeID="15" locationID="30004971" x="0" y="0" z="0" memo="Duripant VII - Asteroid Belt 3 ( Asteroid Belt )" note="" />
                <row bookmarkID="18" creatorID="90000001" created="2015-07-08 21:37:29" itemID="40314794" typeID="15" locationID="30004971" x="0" y="0" z="0" memo="Duripant I - Asteroid Belt 1 ( Asteroid Belt )" note="" />
                <row bookmarkID="19" creatorID="90000001" created="2015-07-08 21:37:39" itemID="40314811" typeID="15" locationID="30004971" x="0" y="0" z="0" memo="Duripant VII - Asteroid Belt 1 ( Asteroid Belt )" note="" />
            </rowset>
        </row>
        <row folderID="4" folderName="Random crap">
            <rowset name="bookmarks" key="bookmarkID" columns="bookmarkID,creatorID,created,itemID,typeID,locationID,x,y,z,memo,note">
                <row bookmarkID="14" creatorID="90000001" created="2015-07-08 21:36:08" itemID="0" typeID="5" locationID="30004971" x="-373405654941.733" y="42718621667.0746" z="-1415023302173.46" memo="spot in Duripant solar system" note="" />
                <row bookmarkID="15" creatorID="90000001" created="2015-07-08 21:36:46" itemID="0" typeID="5" locationID="30004971" x="-373405652840.03" y="42718623812.4957" z="-1415023308332.07" memo="spot in Duripant solar system" note="" />
            </rowset>
        </row>
    </rowset>
</result>
Result Data
folders rowset Rowset containing 1 row per bookmark folder.
folderID int Unique folder ID.
folderName string Folder name.
bookmarks rowset Rowset container 1 row per bookmark in the current folder.
bookmarkID int Unique bookmark ID.
creatorID long Bookmark creator ID. Can be character or corporation ID.
created datetime Date and time when bookmark was created.
itemID long [1] Item ID of the item to which the bookmark refers, or 0 if the bookmark refers to a location.
typeID int [1] Type ID of the item to which the bookmark refers (even if the bookmark refers to a location instead of an item).
locationID long [1] Location ID of the solar sytem to which this bookmark refers.
x double X location of bookmark (relative to system sun) if this bookmark does not refer to an item.
y double Y location of bookmark (relative to system sun) if this bookmark does not refer to an item.
z double Z location of bookmark (relative to system sun) if this bookmark does not refer to an item.
memo string Bookmark description (owner specified).
note string Bookmark annotation (owner specified).
Notes
  • A bookmark will either refer to a specific item (e.g. station), or a location in space. Bookmarks which refer to an item will have a non-zero item ID. Otherwise, the bookmark will specify x, y and z coordinates of the location it refers to.
CalendarEventAttendees

Returns a list of all invited attendees for a given event.

  • Path: /char/CalendarEventAttendees.xml.aspx

  • Cache timer: 10 minutes

  • Access mask: 4

  • Parameters:

    Argument Type Description
    characterID long ID of character
    eventIDs long IDs of the events
Sample Response
<result>
    <rowset name="eventAttendees" key="characterID" columns="characterID,characterName,response">
        <row characterID="123456789" characterName="Jane Doe" response="Accepted" />
        <row characterID="987654321" characterName="John Doe" response="Tentative" />
        <row characterID="192837645" characterName="Another Doe" response="Declined" />
        <row characterID="918273465" characterName="Doe the Third" response="Undecided" />
    </rowset>
</result>
Result Data
Name Data type Description
characterID long ID of the character.
characterName string Name of the character.
response string Can be {"Undecided", "Accepted", "Declined" or "Tentative"}
Notes
  • A call to Character - UpcomingCalendarEvents must be made prior to calling this API. Otherwise you will receive the error:
    216: Calendar Event List not populated with upcoming events. You cannot request any random eventID.
CharacterSheet

Character, Skills and roles information

  • Path: /char/CharacterSheet.xml.aspx

  • Cache timer: 60 minutes

  • Access mask: 8

  • Parameters:

    Argument Type Description
    characterID long ID of character
Sample Response
<result>
    <characterID>632424020</characterID>
    <name>Ernest Borgnine</name>
    <homeStationID>60009646</homeStationID>
    <DoB>2006-03-05 12:41:00</DoB>
    <race>Amarr</race>
    <bloodLineID>13</bloodLineID>
    <bloodLine>Khanid</bloodLine>
    <ancestryID>37</ancestryID>
    <ancestry>Cyber Knights</ancestry>
    <gender>Male</gender>
    <corporationName>Mine. Now. Please</corporationName>
    <corporationID>790988403</corporationID>
    <allianceName>Alliance. Now. Please.</allianceName>
    <allianceID>1538759362</allianceID>
    <factionName/>
    <factionID>0</factionID>
    <cloneTypeID>164</cloneTypeID>
    <cloneName>Clone Grade Alpha</cloneName>
    <cloneSkillPoints>0</cloneSkillPoints>
    <freeSkillPoints>0</freeSkillPoints>
    <freeRespecs>3</freeRespecs>
    <cloneJumpDate>2014-07-29 19:21:47</cloneJumpDate>
    <lastRespecDate>2014-06-01 15:50:22</lastRespecDate>
    <lastTimedRespec>2014-06-01 15:50:22</lastTimedRespec>
    <remoteStationDate>2014-07-29 19:21:47</remoteStationDate>
    <rowset columns="jumpCloneID,typeID,locationID,cloneName" key="jumpCloneID" name="jumpClones">
        <row cloneName="" locationID="61000253" typeID="164" jumpCloneID="18965660"/>
        <row cloneName="" locationID="61000336" typeID="164" jumpCloneID="11203936"/>
        <row cloneName="" locationID="61000637" typeID="164" jumpCloneID="15754983"/>
        <row cloneName="" locationID="61000902" typeID="164" jumpCloneID="19027562"/>
    </rowset>
    <rowset columns="jumpCloneID,typeID,typeName" key="jumpCloneID" name="jumpCloneImplants">
        <row typeID="9941" jumpCloneID="18965660" typeName="Memory Augmentation - Basic"/>
        <row typeID="10212" jumpCloneID="18965660" typeName="Neural Boost - Standard"/>
        <row typeID="10216" jumpCloneID="18965660" typeName="Ocular Filter - Standard"/>
        <row typeID="10228" jumpCloneID="18965660" typeName="Zainou 'Gnome' Shield Management SM-703"/>
        <row typeID="10208" jumpCloneID="11203936" typeName="Memory Augmentation - Standard"/>
        <row typeID="10212" jumpCloneID="11203936" typeName="Neural Boost - Standard"/>
        <row typeID="10216" jumpCloneID="11203936" typeName="Ocular Filter - Standard"/>
        <row typeID="10221" jumpCloneID="11203936" typeName="Cybernetic Subprocessor - Standard"/>
        <row typeID="9941" jumpCloneID="15754983" typeName="Memory Augmentation - Basic"/>
        <row typeID="9943" jumpCloneID="15754983" typeName="Cybernetic Subprocessor - Basic"/>
        <row typeID="10212" jumpCloneID="15754983" typeName="Neural Boost - Standard"/>
        <row typeID="10216" jumpCloneID="15754983" typeName="Ocular Filter - Standard"/>
        <row typeID="10228" jumpCloneID="15754983" typeName="Zainou 'Gnome' Shield Management SM-703"/>
        <row typeID="13256" jumpCloneID="15754983" typeName="Inherent Implants 'Noble' Hull Upgrades HG-1003"/>
        <row typeID="13260" jumpCloneID="15754983" typeName="Inherent Implants 'Squire' Capacitor Systems Operation EO-603"/>
    </rowset>
    <jumpActivation>2015-08-15 21:09:23</jumpActivation>
    <jumpFatigue>2015-08-15 21:42:41</jumpFatigue>
    <jumpLastUpdate>2015-08-15 21:05:42</jumpLastUpdate>
    <balance>509647769.03</balance>
    <rowset columns="typeID,typeName" key="typeID" name="implants">
        <row typeID="10209" typeName="Memory Augmentation - Improved"/>
        <row typeID="10213" typeName="Neural Boost - Improved"/>
        <row typeID="10217" typeName="Ocular Filter - Improved"/>
        <row typeID="10222" typeName="Cybernetic Subprocessor - Improved"/>
        <row typeID="10226" typeName="Social Adaptation Chip - Improved"/>
        <row typeID="33329" typeName="Genolution 'Auroral' AU-79"/>
    </rowset>
    <attributes>
        <intelligence>17</intelligence>
        <memory>17</memory>
        <charisma>27</charisma>
        <perception>17</perception>
        <willpower>21</willpower>
    </attributes>
    <rowset columns="typeID,skillpoints,level,published" key="typeID" name="skills">
        <row typeID="11584" published="1" level="1" skillpoints="750"/>
        <row typeID="24624" published="1" level="0" skillpoints="28"/>
        <row typeID="3394" published="1" level="2" skillpoints="2829"/>
        <row typeID="3411" published="1" level="1" skillpoints="750"/>
        <row typeID="3551" published="1" level="3" skillpoints="8000"/>
        <row typeID="3426" published="1" level="1" skillpoints="250"/>
        <row typeID="25863" published="1" level="1" skillpoints="750"/>
        <row typeID="3328" published="1" level="3" skillpoints="16000"/>
        <row typeID="3340" published="1" level="2" skillpoints="5663"/>
        <row typeID="3363" published="1" level="1" skillpoints="250"/>
        <row typeID="24270" published="1" level="1" skillpoints="750"/>
        <row typeID="21059" published="1" level="3" skillpoints="16000"/>
        <row typeID="12367" published="1" level="2" skillpoints="2829"/>
        <row typeID="12366" published="1" level="2" skillpoints="2829"/>
        <row typeID="12365" published="1" level="2" skillpoints="2829"/>
        <row typeID="12195" published="1" level="1" skillpoints="250"/>
        <row typeID="11566" published="1" level="3" skillpoints="16000"/>
        <row typeID="3443" published="1" level="3" skillpoints="8000"/>
        <row typeID="3425" published="1" level="4" skillpoints="90510"/>
        <row typeID="3422" published="1" level="2" skillpoints="2829"/>
        <row typeID="3417" published="1" level="3" skillpoints="8000"/>
        <row typeID="3416" published="1" level="5" skillpoints="256000"/>
        <row typeID="3413" published="1" level="3" skillpoints="8000"/>
        <row typeID="3406" published="1" level="5" skillpoints="256000"/>
        <row typeID="3403" published="1" level="4" skillpoints="45255"/>
        <row typeID="3402" published="1" level="3" skillpoints="8000"/>
        <row typeID="3392" published="1" level="3" skillpoints="8000"/>
        <row typeID="3387" published="1" level="1" skillpoints="500"/>
        <row typeID="3386" published="1" level="2" skillpoints="1415"/>
        <row typeID="3385" published="1" level="4" skillpoints="45255"/>
        <row typeID="3380" published="1" level="3" skillpoints="8000"/>
        <row typeID="3330" published="1" level="1" skillpoints="500"/>
        <row typeID="3327" published="1" level="3" skillpoints="21351"/>
        <row typeID="3320" published="1" level="3" skillpoints="8000"/>
        <row typeID="3319" published="1" level="2" skillpoints="1415"/>
        <row typeID="3301" published="1" level="1" skillpoints="250"/>
        <row typeID="3300" published="1" level="1" skillpoints="250"/>
    </rowset>
    <rowset columns="certificateID" key="certificateID" name="certificates"/>
    <rowset columns="roleID,roleName" key="roleID" name="corporationRoles">
        <row roleName="roleEquipmentConfig" roleID="2199023255552"/>
        <row roleName="roleInfrastructureTacticalOfficer" roleID="144115188075855872"/>
    </rowset>
    <rowset columns="roleID,roleName" key="roleID" name="corporationRolesAtHQ">
        <row roleName="roleHangarCanTake1" roleID="8192"/>
        <row roleName="roleHangarCanTake3" roleID="32768"/>
        <row roleName="roleHangarCanQuery1" roleID="1048576"/>
        <row roleName="roleHangarCanQuery3" roleID="4194304"/>
        <row roleName="roleHangarCanQuery4" roleID="8388608"/>
        <row roleName="roleHangarCanQuery5" roleID="16777216"/>
        <row roleName="roleContainerCanTake1" roleID="4398046511104"/>
        <row roleName="roleContainerCanTake2" roleID="8796093022208"/>
        <row roleName="roleContainerCanTake3" roleID="17592186044416"/>
    </rowset>
    <rowset columns="roleID,roleName" key="roleID" name="corporationRolesAtBase">
        <row roleName="roleHangarCanTake1" roleID="8192"/>
        <row roleName="roleHangarCanTake3" roleID="32768"/>
        <row roleName="roleHangarCanQuery1" roleID="1048576"/>
        <row roleName="roleHangarCanQuery3" roleID="4194304"/>
        <row roleName="roleHangarCanQuery4" roleID="8388608"/>
        <row roleName="roleHangarCanQuery5" roleID="16777216"/>
        <row roleName="roleContainerCanTake1" roleID="4398046511104"/>
        <row roleName="roleContainerCanTake2" roleID="8796093022208"/>
        <row roleName="roleContainerCanTake3" roleID="17592186044416"/>
    </rowset>
    <rowset columns="roleID,roleName" key="roleID" name="corporationRolesAtOther">
        <row roleName="roleHangarCanTake1" roleID="8192"/>
        <row roleName="roleHangarCanTake3" roleID="32768"/>
        <row roleName="roleHangarCanQuery1" roleID="1048576"/>
        <row roleName="roleHangarCanQuery2" roleID="2097152"/>
        <row roleName="roleHangarCanQuery3" roleID="4194304"/>
        <row roleName="roleHangarCanQuery4" roleID="8388608"/>
        <row roleName="roleHangarCanQuery5" roleID="16777216"/>
        <row roleName="roleContainerCanTake1" roleID="4398046511104"/>
        <row roleName="roleContainerCanTake2" roleID="8796093022208"/>
        <row roleName="roleContainerCanTake3" roleID="17592186044416"/>
    </rowset>
    <rowset columns="titleID,titleName" key="titleID" name="corporationTitles">
        <row titleName="**" titleID="8"/>
    </rowset>
</result>
Result Data
Name Data type Description
characterID long The character ID.
name string Character Name.
homeStationID long ID for station where clone will spawn on demise.
DoB datetime Date character was created.
race string Characters race.
bloodLineID long [1] ID for characters bloodline.
bloodLine string Characters bloodline.
ancestryID long [2] ID for characters ancestry.
ancestry string Characters ancestry.
gender string Characters gender.
corporationName string Characters corporation.
corporationID long ID for characters corporation.
allianceName string Characters alliance.
allianceID long ID for characters alliance.
factionName string Characters faction.
factionID long [3] ID for characters faction.
cloneTypeID long [4] Characters typeID for clone. (deprecated)
cloneName string Name of Clone Type. (deprecated)
cloneSkillPoints long Skillpoints covered by clone. (deprecated)
freeSkillPoints long Skillpoints available to be assigned.
freeRespecs int Number of available character attribute respecs.
cloneJumpDate datetime Characters last clone jump.
lastRespecDate datetime Characters last character attribute respec.
lastTimedRespec datetime Characters last character attribute respec. (Using respec accrued over time (1 year))
remoteStationDate datetime Characters last change of home station remotely.
jumpActivation datetime Characters last capital jump activation.
jumpFatigue datetime Characters jump fatigue expiry.
jumpLastUpdate datetime Characters last jump update.
balance decimal Characters wallet balance.
Attributes
intelligence int Characters intelligence attribute.
memory int Characters memory attribute.
charisma int Characters charisma attribute.
perception int Characters perception attribute.
willpower int Characters willpower attribute.
Rowset jumpClones
jumpCloneID int Unique jump clone identifier.
cloneTypeID long [4] Characters typeID for clone. (deprecated)
locationID long References location ID.
cloneName string Name given to clone.
Rowset jumpCloneImplants
jumpCloneID int Unique jump clone identifier.
typeID long [4] Type ID for implant
typeName string Name for implant.
Rowset implants
typeID long [4] Type ID for implant
typeName string Name for implant.
Rowset skills
typeID long [4] Type ID for implant.
skillpoints int Number of skillpoints trained in this skill.
level int Level skill has been trained to.
published int 0 = unpublished, 1 = published
Rowset certificates (deprecated)
certificateID int ID of certificate.
Rowset corporationRoles
roleID int64 ID of role.
roleName string Name of role.
Rowset corporationRolesAtHQ
Same as corporationRoles.
Rowset corporationRolesAtBase
Same as corporationRoles.
Rowset corporationRolesAtOther
Same as corporationRoles.
Rowset corporationTitles
titleID int32 ID of title.
titleName string Name of title.
References
ChatChannels

Retrieve character Chat Channels.

  • Path: /char/ChatChannels.xml.aspx

  • Cache timer: 14 minutes

  • Access mask: 536870912

  • Parameters:

    Argument Type Description
    characterID long ID of character
Sample Response
<result>
    <rowset name="channels" key="channelID" columns="channelID,ownerID,ownerName,displayName,comparisonKey,hasPassword,motd">
        <row channelID="-69329950" ownerID="95578451" ownerName="CCP Tellus" displayName="Players' Haven" comparisonKey="players'haven" hasPassword="False" motd="<b>Feed pineapples to the cats!</b>">
            <rowset name="allowed" key="accessorID" columns="accessorID,accessorName">
                <row accessorID="99005629" accessorName="Tellus Alliance" />
            </rowset>
            <rowset name="blocked" key="accessorID" columns="accessorID,accessorName,untilWhen,reason">
                <row accessorID="98396389" accessorName="Tellus Corporation" untilWhen="0001-01-01 00:00:00" reason="" />
            </rowset>
            <rowset name="muted" key="accessorID" columns="accessorID,accessorName,untilWhen,reason">
                <row accessorID="90006031" accessorName="CCP Nestor" untilWhen="2015-08-07 15:17:40" reason="Test success! You can't speak now." />
            </rowset>
            <rowset name="operators" key="accessorID" columns="accessorID,accessorName">
                <row accessorID="92168909" accessorName="CCP FoxFour" />
                <row accessorID="95465499" accessorName="CCP Bartender" />
            </rowset>
        </row>
    </rowset>
</result>
Result Data
channels rowset Rowset containing 1 row per channel.
channelID long Unique channel ID. Always negative for player-created channels. Permanent (CCP created) channels have a positive ID, but don't appear in the API.
ownerID long Channel owner ID.
ownerName string Channel owner name.
displayName string Displayed name of channel.
comparisonKey rowset Normalized, unique string used to compare channel names.
hasPassword boolean If true, then this is a password protected channel.
motd string Current channel message of the day.
allowed rowset Rowset containing one row per allowed channel member.
accessorID long ID of allowed channel member (see notes below).
accessorName string Name of allowed channel member.
blocked rowset Rowset containing one row per blocked channel member.
accessorID long ID of blocked channel member (see notes below).
accessorName string Name of blocked channel member.
untilWhen datetime Time at which accessor will no longer be blocked.
reason string Reason accessor is blocked.
muted rowset Rowset containing one row per muted channel member.
accessorID long ID of muted channel member (see notes below).
accessorName string Name of muted channel member.
untilWhen datetime Time at which accessor will no longer be muted.
reason string Reason accessor is muted.
operators rowset Rowset containing one row per channel operator.
accessorID long ID of channel operator (see notes below).
accessorName string Name of channel operator.
Notes
  • Chat channel accessor IDs can be characters, corporations or alliances.
Clones

Retrieve clones and basic attributes portion of character sheet.

  • Path: /char/Clones.xml.aspx

  • Cache timer: 1 hour

  • Access mask: 2147483648 or 8

  • Parameters:

    Argument Type Description
    characterID long Character ID for which clones and attributes will be requested
Sample Response
<result>
    <DoB>2010-05-16 03:38:00</DoB>
    <race>Caldari</race>
    <bloodLineID>1</bloodLineID>
    <bloodLine>Deteis</bloodLine>
    <ancestryID>12</ancestryID>
    <ancestry>Tube Child</ancestry>
    <gender>Male</gender>
    <freeRespecs>3</freeRespecs>
    <cloneJumpDate>0001-01-01 00:00:00</cloneJumpDate>
    <lastRespecDate>0001-01-01 00:00:00</lastRespecDate>
    <lastTimedRespec>0001-01-01 00:00:00</lastTimedRespec>
    <remoteStationDate>0001-01-01 00:00:00</remoteStationDate>
    <attributes>
        <intelligence>20</intelligence>
        <memory>20</memory>
        <charisma>19</charisma>
        <perception>20</perception>
        <willpower>20</willpower>
    </attributes>
    <rowset name="implants" key="typeID" columns="typeID,typeName">
        <row typeID="10225" typeName="Social Adaptation Chip - Standard"/>
        <row typeID="10216" typeName="Ocular Filter - Standard"/>
        <row typeID="10212" typeName="Neural Boost - Standard"/>
        <row typeID="10208" typeName="Memory Augmentation - Standard"/>
        <row typeID="10221" typeName="Cybernetic Subprocessor - Standard"/>
    </rowset>
    <rowset name="jumpClones" key="jumpCloneID" columns="jumpCloneID,typeID,locationID,cloneName"/>
    <rowset name="jumpCloneImplants" key="jumpCloneID" columns="jumpCloneID,typeID,typeName"/>
    <jumpActivation>0001-01-01 00:00:00</jumpActivation>
    <jumpFatigue>0001-01-01 00:00:00</jumpFatigue>
    <jumpLastUpdate>0001-01-01 00:00:00</jumpLastUpdate>
</result>
Result Data
DoB datetime Date character was created.
race string Characters race.
bloodLineID int [1] ID for character bloodline.
bloodLine string Character bloodline.
ancestryID int [1] ID for character ancestry.
ancestry string Character ancestry.
gender string Character gender.
freeRespecs int Number of available character attribute respecs.
cloneJumpDate datetime Last character clone jump.
lastRespecDate datetime Last character attribute respec.
lastTimedRespec datetime Last character attribute respec. (Using respec accrued over time (1 year))
remoteStationDate datetime Last remote change of home station.
attributes object
intelligence int Intelligence attribute.
memory int Memory attribute.
charisma int Charisma attribute.
perception int Perception attribute.
willpower int Willpower attribute.
implants rowset Rowset containing one row per implant.
typeID int Type ID of the implant.
typeName string Name of the implant.
jumpClones rowset Rowset containing one row per jump clone.
jumpCloneID int Unique jump clone identifier.
cloneTypeID int [1] Clone type ID. (deprecated)
locationID long Clone location ID.
cloneName string Name given to clone.
jumpCloneImplants rowset Rowset containing one row per jump clone implant.
jumpCloneID long Unique jump clone identifier.
typeID int [1] Type ID for implant
typeName string Name for implant.
jumpActivation datetime Last capital jump activation for character.
jumpFatigue datetime Jump fatigue expiry date for character.
jumpLastUpdate datetime Last jump update for character.
Notes
  • This call returns a subset of the information available in the CharacterSheet endpoint, but with a different mask so that API keys can be configured to only return clone and attribute information. That is, if an API key allows CharacterSheet, then calling the Clones endpoint is unnecessary.
ContactList

Lists the character’s personal, corporation, and alliance contacts.

  • Path: /char/ContactList.xml.aspx

  • Cache timer: 15 minutes

  • Access mask: 16

  • Parameters:

    Argument Type Description
    characterID long ID of character
Sample Response
<result&g