CREST Documentation


Please note: This is Developer Preview documentation for an API that is not yet available - Sections 2-4 are automatically generated, so don't edit them!

Contents

CREST

CREST (Carbon REST) is a RESTful hypermediaHTTP API that enables read and write access to parts of the EVE universe.

Resources

Things in the EVE universe are exposed as addressable resources with a canonical URI. A representation of a resource can be obtained by making an HTTP GET request to the resource URI. Resources may be updated by making PUT requests to their URI and removed by making DELETE requests to their URI.

All resources are reachable from the root API entry point URI. Clients should not construct URIs, but instead follow URIs included in representations they have received. URIs may be stored as bookmarks, shared in IMs, sent as emails and published on web sites. CCP will endevour to support URIs as permalinks, but client applications should be able to cope with URIs becoming invalid as the API evolves and resources may be served from different locations just as web browsers cope with broken links.

Representations

Resources are represented as hypermedia documents which link to related resources. The structure of representations are described by media types. Clients specify the representation they would like to received using the Accept header of their request and specify which representations they are sending in the Content-Type header.

Representations may be extended to add new relationships and functionality, so clients must ignore all extra data they receive. Representations will never rename or remove attributes.

Where renaming or removing attributes is required to support new functionality, a new version of the representation will be defined as a new media type and the old representation will continue to be supported for as long as possible. The newest version of a representation will be served by default to ensure that new clients are developed using the newest representations. Clients that are widely distributed and not automatically updated should always supply Accept headers if they rely on the structure of representations.

Representations are formatted as JSON objects containing name/value pairs and nested objects and arrays. Some name/value pairs are optional, meaning that they may be omitted by senders when not applicable. Some name/value pairs have default values which will be used when a value is not provided.

Names

Some names used in representations have special significance and can be relied on to be used consistently across all representations.

href

The value should be interpreted as a URI to an external resource.

self

The value should be interpreted as a URI which can be used to update or delete the JSON object containing the "self" pair.

name

The value should be interpreted as a localized, human readable name for the resource.

id

The value should be interpreted as a non-localized, non-human readable identifier for the resource.

Types

The values in representations are expected to have various types described below.

string

A JSON string.

number

A JSON number.

int

A JSON number that may not have a fractional part.

float

A JSON number that may have a fractional part.

long

An arbitrarily sized integer formatted as a decimal JSON string.

time

A JSON string containing an ISO 8601 formatted combined date and UTC time with 3 decimal places of precision.

array

A JSON array of JSON objects.

Authorization

Requests to non-public parts of the API are made on behalf of a character. Client applications are further restricted by the set of scopes a player has allowed the application to use on behalf of a character. When making a request to a non-public part of the API, client applications must supply an OAuth 2 token granted by login.eveonline.com in the Authorization header. If the character is not allowed to make the request, or the token is not have the correct scopes, the request will be denied.

Localization

Clients may specify the languages they would like to receive responses in by providing the Accept-Language header with their requests.

Example javascript client

An example Javascript client that showcases how to use CREST APIs can be found here: https://github.com/jimpurbrick/contactjs

Resources

Api

The CREST API entry point

Capsuleer

Private information about a character. Requires the capsuleerRead scope to access.

Character

Public character resource

Contact

A contact relationship including standing and watched status. Contained within a ContactList. Character contacts require the personalContactsWrite scope to update. Corporation contacts require the corporationContactsWrite scope to update.

ContactList

A Collection of Contacts. Character contacts require the personalContactsRead scope to access. Corporation contacts require the corporationContactsRead scope to access.

Corporation

Search

A Collection of references to Resources matching the provided query. Accepts "name" as a query string parameter which is matched against resource names.

Representations

vnd.ccp.eve.Api-v1

search vnd.ccp.eve.Reference-v1 Search for resources
character vnd.ccp.eve.Reference-v1 Authenticated Character (optional)

vnd.ccp.eve.Capsuleer-v1

skills vnd.ccp.eve.Reference-v1 The character's current skills
trainingQueue vnd.ccp.eve.Reference-v1 The character's skills queued for training

vnd.ccp.eve.Character-v1

corporation vnd.ccp.eve.Reference-v1 The character's corporation
race vnd.ccp.eve.Reference-v1 The character's race
name string The character's name
bloodLine vnd.ccp.eve.Reference-v1 The character's bloodline
gender string The character's gender
contacts vnd.ccp.eve.Reference-v1 The character's ContactList
capsuleer vnd.ccp.eve.Reference-v1 Private EVE capsuleer information
description string The character's description

vnd.ccp.eve.Collection-v1

previous vnd.ccp.eve.Reference-v1 Reference to the previous page (optional)
items array of vnd.ccp.eve.Reference-v1 References to the data
totalCount int Number of total items in all pages
next vnd.ccp.eve.Reference-v1 Reference to the next page (optional)
pageCount int Total number of pages

vnd.ccp.eve.Contact-v1

standing int Standing of contact
name string Localized name of contact (optional)
self string URI of this sub-object, allowing updates and deletes when aggregated (optional)
href string URI of contact
watched bool Flag indicating whether this contact is being watched (optional)
id string Non-localized name of resource (optional)

vnd.ccp.eve.ContactCollection-v1

previous vnd.ccp.eve.Reference-v1 Reference to the previous page (optional)
items array of vnd.ccp.eve.Contact-v1 References to the data
totalCount int Number of total items in all pages
next vnd.ccp.eve.Reference-v1 Reference to the next page (optional)
pageCount int Total number of pages

vnd.ccp.eve.Corporation-v1

taxRate float The tax rate for members of the corporation (optional)
alliance vnd.ccp.eve.Reference-v1 The alliance which the corporation is a member of (optional)
description string The corporation description
creator vnd.ccp.eve.Reference-v1 The Character that created the Corporation (optional)
ceo vnd.ccp.eve.Reference-v1 The Character currently running the corporation (optional)
ticker string The ticker of the corporation
name string The name of the corporation
contacts vnd.ccp.eve.Reference-v1 The corporation's ContactList
acceptApplications bool Is the corporation accepting applications (optional)
uri string An external information URI for the corporation
shares int The number of shares that exist for the corporation (optional)

vnd.ccp.eve.Reference-v1

self string URI of this sub-object, allowing updates and deletes when aggregated (optional)
href string URI of external resource
name string Localized name of resource (optional)
id string Non-localized name of resource (optional)

Scopes

capsuleerRead

Read your character sheet

corporationContactsRead

Read your corporation's contact list and standings

corporationContactsWrite

Update your corporation's contact list and standings

personalContactsRead

Read your personal contact list, standings and watchlist

personalContactsWrite

Update your personal contact list, standings and watchlist