Character API Documentation (BETA!)

A test version of the character API is available!  Note that this is not 100% final, but it will probably not change much from the current form.

Known Issues:
- Only the player’s first gear set (“Gear” tab on the character builder UI) is available.  The final API will likely provide a way for you to specify any (or multiple) gear sets to retrieve, as well as companion gear sets.

Endpoints

http://swtor.askmrrobot.com/api/character/v1/{profile-id}

http://swtor.askmrrobot.com/api/test/character/v1/{profile-id}

Replace {profile-id} with the id as seen in the URL to the character profile.  For example, you can view my profile at:
http://swtor.askmrrobot.com/character/0f95a940-4cf1-4af3-a922-666e312ff49c
And you can get it via the API at:
http://swtor.askmrrobot.com/api/character/v1/0f95a940-4cf1-4af3-a922-666e312ff49c

The version (v1) is required.  We will document the current and supported versions whenever changes are made.

The only difference between the two endpoints is that the api/test endpoint returns formatted JSON that is easier to read — this endpoint will be removed when the API is complete.  The regular endpoint returns JSON without extra whitespace, and with null/default values omitted to reduce bandwidth.

Error Handling
Different http status codes are returned in the event of an error:

  • 404 – the profile does not exist or could not be found
  • 400 – the profile id was not a valid guid in the accepted format, or the version specified is not supported
  • 500 – all other errors
General Notes on the JSON
LastUpdated date is always in universal time, formatted as a text-sortable date/time string.

Buffs correspond to the buffs a user has selected on their profile, and can have the following values:

    public enum Buff
    {
        Power,     // sith warrior buff
        Stats,     // sith inquisitor buff
        Endurance, // bounty hunter buff
        Crit,      // imperial agent buff
    }

Stance is the selected stance, and can be:
(Note that stance values use the Empire name for both factions.)

    public enum Stance
    {
        None,

        DarkCharge,
        LightningCharge,
        SurgingCharge,

        Soresu,
        ShiiCho,
        Shien,
        Ataru,
        Juyo,

        Combustible,
        Ion,
        HighEnergy,
        CombatSupport,
        HighVelocity,
    }
Skill Tree Format
Skill trees are described as a SkillString:
  • SkillString is a triplet separated by dashes, with each section representing the corresponding tree from left-to-right, as seen in-game.
  • Each digit in a section corresponds to a single skill, with 0-5 possible ranks.
  • The least significant digit in each section (i.e. right-most digit) is the bottom-left skill in the tree.
  • The most significant digit in each section (i.e. left-most digit) is the top-right skill in the tree.
  • In other words, from least to most significant the digits correspond to each skill going from bottom to top, left to right as they appear in-game.
Gear Set Format

The gear set represents the main gear set for the player (the “Gear” tab on the UI on askmrrobot.com).  It is a dictionary of slot to item objects.  Slots can take the following values:

    public enum CharacterSlot : byte
    {
        None,
        MainHand,
        OffHand,
        Belt,
        Chest,
        Ears,
        Feet,
        Glove,
        Helm,
        Implant1,
        Leg,
        Wrist,
        Relic1,
        Implant2,
        Relic2,

        Part1,
        Part2,
        SensorUnit,
        Core1,
        Core2,
        Motor1,
        Motor2,
        Customization,
    }

Items have a list of Mods.  The list is in order as they appear on the item in-game.  Even if a mod slot is empty, a Mod object will be present with an Id of 0.  The Slot property on a mod can have the following values:

    public enum ModSlotEnum : byte
    {
        Armoring,
        Augment,
        Barrel,
        ColorCrystal,
        Enhancement,
        Hilt,
        Mod
    }

Stats on both items and mods are a dictionary of stat to value.  All values are short integers.  An item’s stats will be the total stats for that item, including any mods in the item.  The mod stats are included as a convenience if you wish to do some math to remove a mod manually, etc.  The possible stat keys are:

    public enum Stat : byte
    {
        Strength,
        Endurance,
        Crit,
        Power,
        Defense,
        Accuracy,
        Alacrity,
        Surge,
        Shielding,
        Presence,
        Will,
        Cunning,
        Aim,
        Absorb,
        Expertise,

        Armor,
        MinDamage,
        MaxDamage,

        TechPower,
        ForcePower
    }

Items will either have an ArmorType, WeaponType, or ShieldType — only one of these will be specified per item, and for some items they are all null (such as relics, companion customization items, etc.).  The possible values are:

    public enum WeaponType : byte
    {
        LightSaber,
        Pistol,
        PoleSaber,
        BlasterRifle,
        VibroKnife,
        VibroSword,
        TrainingSaber,
        ScatterGun,
        AssaultCannon,
        SniperRifle,
        ElectroStaff,
        TechBlade,
        TechStaff
    }

    public enum ArmorType : byte
    {
        Light,
        Medium,
        Heavy
    }

    public enum ShieldType : byte
    {
        Focus,
        Generator,
        ForceShield,
        TechShield,
    }
Items may also have an ItemSetId.  Items that belong to the same set (i.e. contribute to the same set bonuses) have the same ItemSetId.  If more detail is desired around item sets, please comment and let us know — the ID is all we provide at the moment.

Other Enumerated Values
Below are the possible values for many of the returned properties in the JSON.

Region

    public enum SwtorRegion
    {
        US,
        EU,
        Asia,
    }

Faction

    public enum Faction
    {
        Empire,
        Republic,
    }

AdvancedClass

    public enum AdvancedClass : byte
    {
        Guardian,
        Sentinel,
        Commando,
        Vanguard,
        Sage,
        Shadow,
        Gunslinger,
        Scoundrel,
        Juggernaut,
        Marauder,
        Mercenary,
        Powertech,
        Assassin,
        Sorcerer,
        Operative,
        Sniper,
    }

Gender

    public enum Gender : byte
    {
        Female,
        Male
    }

Race

    public enum Race
    {
        Chiss,
        Cyborg,
        Human,
        Miraluka,
        Mirialan,
        Rattataki,
        SithPureblood,
        Twilek,
        Zabrak,
    }

Alignment

    public enum Alignment
    {
        Neutral = 0,
        Dark1 = -1,
        Dark2 = -2,
        Dark3 = -3,
        Dark4 = -4,
        Dark5 = -5,
        Light1 = 1,
        Light2 = 2,
        Light3 = 3,
        Light4 = 4,
        Light5 = 5,
    }

SocialLevel

    public enum SocialLevel
    {
        None,
        Social1,
        Social2,
        Social3,
        Social4,
        Social5,
        Social6,
        Social7,
        Social8,
        Social9,
        Social10,
    }

CraftingCrewSkill, CrewSkill2, CrewSkill3

    public enum CrewSkill
    {
        None,
        Archaeology,
        Bioanalysis,
        Scavenging,
        Slicing,
        Armormech,
        Armstech,
        Artifice,
        Biochem,
        Cybertech,
        Synthweaving,
        Diplomacy,
        Investigation,
        TreasureHunting,
        UnderworldTrading,
    }

Quality

    public enum Quality : byte
    {
        Cheap,
        Standard,
        Premium,
        Prototype,
        Custom,
        Artifact,
        Legendary,
        Legacy,
    }
Slot
This slot appears directly on each item, and is a more general description of how the item can be used.
    public enum ItemSlot : byte
    {
        Belt,
        Ear,
        Helm,
        Chest,
        PrimaryRanged,
        SecondaryRanged,
        EitherRanged,
        CustomRanged,    // scattergun
        Foot,
        Hands,
        Wrist,
        Legs,
        Implant,
        Shield,
        MainHand,
        OffHand,
        EitherHand,
        CustomMelee,     // vibroknife
        Relic,

        DroidParts,
        DroidSensor,
        DroidMotor,
        DroidCore,

        Customization
    }
Datacrons

Datacrons are a list of datacron ids.  The following code block describes each datacron.  Feel free to copy and adapt this code into your own code base as needed.  More concise documentation or an API call to get JSON describing these is forthcoming.

private static readonly List _allDatacrons = new List();
        static Datacron()
        {
            _allDatacrons.Add(new Datacron
            {
                Id = 0,
                Planet = "Alderaan",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 4,
                X = 1107,
                Y = 80,
                CodexEntry = "Galactic History 43: The Great Droid Revolution",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 1,
                Planet = "Alderaan",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 3,
                X = -82,
                Y = -268,
                CodexEntry = "Galactic History 45: The Krath Cult",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 2,
                Planet = "Alderaan",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 3,
                X = -2508,
                Y = -427,
                CodexEntry = "Galactic History 47: Naddist Rebels",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 3,
                Planet = "Alderaan",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 4,
                X = 2190,
                Y = -2019,
                CodexEntry = "Galactic History 46: Nadd's Legacy",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 4,
                Planet = "Alderaan",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 3,
                X = 2721,
                Y = 2496,
                CodexEntry = "Galactic History 44: The Jedi Nomi",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 5,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 2,
                X = 727,
                Y = 2033,
                CodexEntry = "Galactic History 31: The Ritual of Nathema",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 6,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 2,
                X = -1017,
                Y = 1514,
                CodexEntry = "Galactic History 28: The Battle at Primus Goluud",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 7,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 2,
                X = 191,
                Y = -346,
                CodexEntry = "Galactic History 32: Long Exile",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 8,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 2,
                X = 1853,
                Y = 111,
                CodexEntry = "Galactic History 29: Sadow's Escape",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 9,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = null,
                Shard = "Green Matrix Shard",
                Amount = null,
                X = -505,
                Y = 1990,
                CodexEntry = "Galactic History 30: Rise of the Sith Emperor",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 10,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 4,
                X = 191,
                Y = -346,
                CodexEntry = "Galactic History 53: The Conclave at Deneba",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 11,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 4,
                X = -1017,
                Y = 1514,
                CodexEntry = "Galactic History 56: The Brotherhood of the Sith",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 12,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 4,
                X = 730,
                Y = 2030,
                CodexEntry = "Galactic History 57: The Brotherhood's Power Grows",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 13,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 3,
                X = -485,
                Y = -233,
                CodexEntry = "Galactic History 54: Ulic's Fall",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 14,
                Planet = "Balmorra",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = -779,
                Y = 2069,
                CodexEntry = "Galactic History 55: The Ascension of Exar Kun",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 15,
                Planet = "Belsavis",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = -501,
                Y = 768,
                CodexEntry = "Galactic History 72: The Fall of the Covenant",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 16,
                Planet = "Belsavis",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 4,
                X = -992,
                Y = -450,
                CodexEntry = "Galactic History 69: The Mandalorian Wars",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 17,
                Planet = "Belsavis",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 4,
                X = -1915,
                Y = -476,
                CodexEntry = "Galactic History 70: The Covenant Acts",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 18,
                Planet = "Belsavis",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 4,
                X = -785,
                Y = -1930,
                CodexEntry = "Galactic History 68: The Mandalorians Return",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 19,
                Planet = "Belsavis",
                Faction = null,
                Stat = null,
                Shard = "Green Matrix Shard",
                Amount = null,
                X = -315,
                Y = -2172,
                CodexEntry = "Galactic History 71: The Muur Talisman",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 20,
                Planet = "Corellia",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 4,
                X = -2755,
                Y = -2005,
                CodexEntry = "Galactic History 82: Darth Traya's Return",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 21,
                Planet = "Corellia",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = 703,
                Y = 1717,
                CodexEntry = "Galactic History 79: The Conclave at Katarr",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 22,
                Planet = "Corellia",
                Faction = null,
                Stat = null,
                Shard = "Blue Matrix Shard",
                Amount = null,
                X = -2425,
                Y = -1063,
                CodexEntry = "Galactic History 62: The Great Sith War Ends",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 23,
                Planet = "Corellia",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 4,
                X = 3425,
                Y = -3209,
                CodexEntry = "Galactic History 80: A Return from Exile",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 24,
                Planet = "Corellia",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 4,
                X = 3140,
                Y = -1790,
                CodexEntry = "Galactic History 78: The Sith Triumvirate",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 25,
                Planet = "Corellia",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 4,
                X = -2658,
                Y = -3114,
                CodexEntry = "Galactic History 81: The Battle of Telos Four",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 26,
                Planet = "Corellia",
                Faction = null,
                Stat = null,
                Shard = "Green Matrix Shard",
                Amount = null,
                X = 702,
                Y = -1884,
                CodexEntry = "Galactic History 61: The Brotherhood is Broken",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 27,
                Planet = "Corellia",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = -2404,
                Y = 2948,
                CodexEntry = "Galactic History 79: The Conclave at Katarr",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 28,
                Planet = "Coruscant",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 2,
                X = 2320,
                Y = 1055,
                CodexEntry = "Galactic History 08: Hyperspace Cannons",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 29,
                Planet = "Coruscant",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = null,
                Shard = "Yellow Matrix Shard",
                Amount = null,
                X = 905,
                Y = 4557,
                CodexEntry = "Galactic History 06: The Infinite Empire Collapses",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 30,
                Planet = "Coruscant",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 2,
                X = -3087,
                Y = 3030,
                CodexEntry = "Galactic History 07: The First Spaceflights",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 31,
                Planet = "Coruscant",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 2,
                X = -3729,
                Y = 161,
                CodexEntry = "Galactic History 04: King Adas",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 32,
                Planet = "Coruscant",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 2,
                X = 1021,
                Y = 3967,
                CodexEntry = "Galactic History 05: Rise of the Infinite Empire",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 33,
                Planet = "Dromund Kaas",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 2,
                X = 855,
                Y = 643,
                CodexEntry = "Galactic History 19: The Pius Dea Crusades",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 34,
                Planet = "Dromund Kaas",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 2,
                X = 581,
                Y = 798,
                CodexEntry = "Galactic History 21: The Birth of the Mandalorians",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 35,
                Planet = "Dromund Kaas",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 2,
                X = -1219,
                Y = 209,
                CodexEntry = "Galactic History 22: The Second Great Schism",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 36,
                Planet = "Dromund Kaas",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = null,
                Shard = "Yellow Matrix Shard",
                Amount = null,
                X = -187,
                Y = 1738,
                CodexEntry = "Galactic History 18: The Hutt Cataclysms",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 37,
                Planet = "Dromund Kaas",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 2,
                X = -793,
                Y = 1450,
                CodexEntry = "Galactic History 20: Chancellor Blotus",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 38,
                Planet = "Hoth",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 4,
                X = 1039,
                Y = -1243,
                CodexEntry = "Galactic History 65: An Exile on Rhen Var",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 39,
                Planet = "Hoth",
                Faction = null,
                Stat = null,
                Shard = "Red Matrix Shard",
                Amount = null,
                X = -738,
                Y = 1705,
                CodexEntry = "Galactic History 66: The Jedi Covenant",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 40,
                Planet = "Hoth",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 4,
                X = 2837,
                Y = -375,
                CodexEntry = "Galactic History 64: The Kanz Disorders",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 41,
                Planet = "Hoth",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 4,
                X = 3144,
                Y = 475,
                CodexEntry = "Galactic History 63: The Terentatek Hunt",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 42,
                Planet = "Hoth",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 4,
                X = -4102,
                Y = 115,
                CodexEntry = "Galactic History 67: Mandalore the Ultimate",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 43,
                Planet = "Hutta",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 2,
                X = -96,
                Y = 861,
                CodexEntry = "Galactic History 01: The Architects",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 44,
                Planet = "Hutta",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = null,
                Shard = "Blue Matrix Shard",
                Amount = null,
                X = -9,
                Y = 319,
                CodexEntry = "Galactic History 03: The Battalions of Zhell",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 45,
                Planet = "Hutta",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 2,
                X = 648,
                Y = -107,
                CodexEntry = "Galactic History 02: Ancient Civilizations",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 46,
                Planet = "Illum",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 4,
                X = 920,
                Y = 1075,
                CodexEntry = "Galactic History 83: The Republic Rebuilds",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 47,
                Planet = "Illum",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 4,
                X = 103,
                Y = -80,
                CodexEntry = "Galactic History 84: The G0-T0 Coup",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 48,
                Planet = "Illum",
                Faction = null,
                Stat = null,
                Shard = "Red Matrix Shard",
                Amount = null,
                X = 543,
                Y = 544,
                CodexEntry = "Galactic History 85: The Purge of the Dark Council",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 49,
                Planet = "Illum",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = 304,
                Y = -1568,
                CodexEntry = "Galactic History 87: A Wayward Apprentice",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 50,
                Planet = "Illum",
                Faction = null,
                Stat = null,
                Shard = "Yellow Matrix Shard",
                Amount = null,
                X = 311,
                Y = -377,
                CodexEntry = "Galactic History 86: The Empire's Revenge",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 51,
                Planet = "Korriban",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 2,
                X = 529,
                Y = 65,
                CodexEntry = "Galactic History 16: The Alsakan Conflicts",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 52,
                Planet = "Korriban",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 2,
                X = 150,
                Y = 78,
                CodexEntry = "Galactic History 15: Mandalore",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 53,
                Planet = "Korriban",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = null,
                Shard = "Red Matrix Shard",
                Amount = null,
                X = -55,
                Y = 379,
                CodexEntry = "Galactic History 17: The Duinuogwuin Contention",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 54,
                Planet = "Nar Shaada",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 3,
                X = -3362,
                Y = -3316,
                CodexEntry = "Galactic History 33: Dromund Kaas",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 55,
                Planet = "Nar Shaada",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 3,
                X = 3338,
                Y = -3287,
                CodexEntry = "Galactic History 35: The Gank Massacres",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 56,
                Planet = "Nar Shaada",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 3,
                X = 1958,
                Y = 3288,
                CodexEntry = "Galactic History 34: The Discovery of Ryll",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 57,
                Planet = "Nar Shaada",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 3,
                X = 2156,
                Y = 3103,
                CodexEntry = "Galactic History 37: Freedon Nadd",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 58,
                Planet = "Nar Shaada",
                Faction = null,
                Stat = null,
                Shard = "Yellow Matrix Shard",
                Amount = null,
                X = 1781,
                Y = 3084,
                CodexEntry = "Galactic History 36: The Quarren-Mon Calamari War",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 59,
                Planet = "Nar Shaada",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 3,
                X = -3699,
                Y = -1692,
                CodexEntry = "Galactic History 33: Dromund Kaas",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 60,
                Planet = "Nar Shaada",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 3,
                X = 2930,
                Y = 400,
                CodexEntry = "Galactic History 35: The Gank Massacres",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 61,
                Planet = "Nar Shaada",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 3,
                X = 2017,
                Y = 2441,
                CodexEntry = "Galactic History 37: Freedon Nadd",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 62,
                Planet = "Ord Mantell",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = null,
                Shard = "Red Matrix Shard",
                Amount = null,
                X = 778,
                Y = 133,
                CodexEntry = "Galactic History 14: The Fall of Tion",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 63,
                Planet = "Ord Mantell",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 2,
                X = -971,
                Y = 201,
                CodexEntry = "Galactic History 13: The First Great Schism",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 64,
                Planet = "Ord Mantell",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 2,
                X = -660,
                Y = -561,
                CodexEntry = "Galactic History 12: The Birth of the Republic",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 65,
                Planet = "Quesh",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 4,
                X = 425,
                Y = -132,
                CodexEntry = "Galactic History 58: Ulic's Trials",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 66,
                Planet = "Quesh",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 4,
                X = 207,
                Y = 773,
                CodexEntry = "Galactic History 59: Aleema's Fate",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 67,
                Planet = "Quesh",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 4,
                X = 557,
                Y = 1422,
                CodexEntry = "Galactic History 60: The Destruction of Ossus",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 68,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 2,
                X = 1187,
                Y = -571,
                CodexEntry = "Galactic History 25: Two Rivals",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 69,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 4,
                X = 1187,
                Y = -571,
                CodexEntry = "Galactic History 51: The Krath Cult Strikes",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 70,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 2,
                X = -1515,
                Y = -253,
                CodexEntry = "Galactic History 23: The Sith Order Begins",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 71,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 3,
                X = -1515,
                Y = -253,
                CodexEntry = "Galactic History 48: The Audiences on Onderon",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 72,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 2,
                X = 1047,
                Y = 454,
                CodexEntry = "Galactic History 24: Empress Teta",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 73,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 4,
                X = 1047,
                Y = 454,
                CodexEntry = "Galactic History 49: Exar Kun",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 74,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 2,
                X = -362,
                Y = -227,
                CodexEntry = "Galactic History 26: Naga Sadow's Deceptions",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 75,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = null,
                Shard = "Green Matrix Shard",
                Amount = null,
                X = 1059,
                Y = 1039,
                CodexEntry = "Galactic History 27: The Great Hyperspace War",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 76,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = 444,
                Y = -772,
                CodexEntry = "Galactic History 50: Basilisk",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 77,
                Planet = "Taris",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 4,
                X = -643,
                Y = 1606,
                CodexEntry = "Galactic History 52: Exar Kun Faces Korriban",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 78,
                Planet = "Tatooine",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 3,
                X = 2140,
                Y = -3671,
                CodexEntry = "Galactic History 39: The Third Great Schism",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 79,
                Planet = "Tatooine",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 3,
                X = 2115,
                Y = -596,
                CodexEntry = "Galactic History 42: The Nevoota Extinction",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 80,
                Planet = "Tatooine",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Aim,
                Shard = null,
                Amount = 3,
                X = -628,
                Y = -30,
                CodexEntry = "Galactic History 38: The Tyrant of Onderon",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 81,
                Planet = "Tatooine",
                Faction = null,
                Stat = null,
                Shard = "Blue Matrix Shard",
                Amount = null,
                X = -2391,
                Y = -1381,
                CodexEntry = "Galactic History 40: Czerka Discovers Kashyyyk",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 82,
                Planet = "Tatooine",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 3,
                X = -2391,
                Y = -1381,
                CodexEntry = "Galactic History 41: The Droid Rights Movement",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 83,
                Planet = "Tatooine",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 3,
                X = 726,
                Y = 3137,
                CodexEntry = "Galactic History 39: The Third Great Schism",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 84,
                Planet = "Tython",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 2,
                X = -33,
                Y = -102,
                CodexEntry = "Galactic History 09: The Force Wars",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 85,
                Planet = "Tython",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 2,
                X = -648,
                Y = -72,
                CodexEntry = "Galactic History 10: The Tion Cluster",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 86,
                Planet = "Tython",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Stat = null,
                Shard = "Blue Matrix Shard",
                Amount = null,
                X = -93,
                Y = 922,
                CodexEntry = "Galactic History 11: The Tionese Face the Hutt Empire",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 87,
                Planet = "Voss",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Will,
                Shard = null,
                Amount = 4,
                X = -29,
                Y = 372,
                CodexEntry = "Galactic History 77: A Return to the Unknown Regions",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 88,
                Planet = "Voss",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Presence,
                Shard = null,
                Amount = 4,
                X = 2144,
                Y = -840,
                CodexEntry = "Galactic History 75: The Jedi Civil War",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 89,
                Planet = "Voss",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Endurance,
                Shard = null,
                Amount = 4,
                X = -1950,
                Y = -2220,
                CodexEntry = "Galactic History 73: The Battle of Malachor Five",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 90,
                Planet = "Voss",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Strength,
                Shard = null,
                Amount = 4,
                X = 655,
                Y = 2049,
                CodexEntry = "Galactic History 76: Revan is Remade",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 91,
                Planet = "Voss",
                Faction = null,
                Stat = TeamRobot.Swtor.Stat.Cunning,
                Shard = null,
                Amount = 4,
                X = 515,
                Y = 175,
                CodexEntry = "Galactic History 74: Revan and Malak Fall",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 92,
                Planet = "Imperial Fleet",
                Faction = TeamRobot.Swtor.Faction.Empire,
                Shard = "+10 All Stats",
                CodexEntry = "N/A",
            });
            _allDatacrons.Add(new Datacron
            {
                Id = 93,
                Planet = "Republic Fleet",
                Faction = TeamRobot.Swtor.Faction.Republic,
                Shard = "+10 All Stats",
                CodexEntry = "N/A",
            });
        }

Update on 7/25/12: we made the calculation js available for use (http://static2.askmrrobot.com/swtor/calc.js).  You can get more details here.

  • drewbacca81

    Is there a way to only subscribe to the WoW based stuff? Although it’s great what you’re doing with SWTOR, I really don’t care about it, but would like to stay up to date on all the WoW stuff.

    • Vee Tegen / Zoopercat

       @drewbacca81 Did you mean a way to subscribe to wow-only blog articles? Perhaps! We have a category for SWTOR and WoW. I’ll check it out and see if the RSS feeds can be set up by category, or if there is anything I can do on the ‘admin’ side to make that a possibility :)

  • perringaiden

    As a request, if you update this, can you mention what was updated?

    • http://www.askmrrobot.com Zoopercat / Vee Tegen

      Yes. We will do that :)

  • MichaelSchemerII

    I am wondering about the actual use of this API? Is it for showing your current gearsets in your blog or guild site?

  • http://twitter.com/jdpickering Joseph Pickering

    Has there been any more process made of this or anything else documented or put together as an example?