Launching the Atlas API

Greetings Dragon Lords,

To follow up with our post from a few weeks ago regarding the use of third-party tools, we’d like to share with you today our public API for Atlas. Tool creators will be able to access the API after registering an API key by logging in to the Developer Portal using their PocketID e-mail address. The API will provide standardized endpoints for tool creation.

With the introduction of this API, we’ll be able to secure previously accessible strategic information that should not have been, and resulted in an imbalance to fair play. We want to make sure this transition is not too jarring, and therefore will not close the existing endpoints for two weeks to allow time for tool creators to make the necessary updates. At the end of those two weeks, we’ll be securing the remaining points of entry into the game that were not supposed to be available as we fully transition into the new API. Creators should note that some endpoints that used to be available, but are not anymore, are most likely due to having to abide by legal restrictions. We’d like to thank everyone in advance for bearing with us throughout this process.

Moving forward, we want to hear from anyone using the API, including requests, feedback, and everything in between. If there are additional endpoints that you wish to be added, please specifically request them, as not every one will be automatically added.

Participate in the API discussion here!

1 Like

Getting Started Guide with Demo Application

API Reference

/api/v1/atlas/team/contribution
# Troop kills per player for your team
# timestamp (ts) is in epoch time format
{
    
    "ts”: [:int], 
    "entries": [
        {
            "stats": {
                "monthly_ships_killed”: [:int],
                "lifetime_ships_killed”: [:int]
            },
            "for_name”: [:str]
        }
    ]
}

/api/v1/atlas/teams/metadata?k_id=1&realm_name=Celestial_Haven&team_name=[:str]
#Provides limited scope of data for a given team. Including roster, activeness, and free passage.
{
    "roster": [
      [:str]
    ],
    "alliance": [:str|null],
    "elo": [:int],
    "league_info": {
        "division_id": [:int],
        "league_id": [:int],
        "subleague_id": [:str]
    },
    "free_passages": [:list(str)],
    "influence": [:int],
    "rank": [:int],
    "activeness": {
        "level": [:int],
        "score": [:float],
        "label": [:str]
    },
    "map_colors": {
        "pattern_config": {
            "secondaryColor": [:str]
        },
        "macro_pattern": [:str],
        "macro_color": [:str]
    },
    "power_rank": [:int],
    # backend castle IDs are in the format of #-A###-#
    "capital": [
        [:int],
        [:str],
        [:int]
    ],
    "crest": [:str]
}

/api/v1/atlas/teams/metadata/macro?k_id=1&realm_name=Celestial_Haven
# Team metadata for all atlas teams.
{
    [:str]: {
        "elo": [:int],
        "league_info": {
            "division_id": [:int],
            "league_id": [:str],
            "subleague_id": [:str]
        },
        "influence": [:int],
        "rank": [:int],
        "activeness": {
            "level": [:int],
            "score": [:float],
            "label": [:str]
        },
        "map_colors": {
            "pattern_config": {
                "secondaryColor": [:str]
            },
            "macro_pattern": [:str],
            "macro_color": [:str]
        },
        "power_rank": [:int],
        "capital": [
            [:int],
            [:str],
            [:int]
        ],
        "crest": [:str]
    },
}

/api/v1/atlas/castles/metadata/macro?realm_name=Celestial_Haven&k_id=1
# Limited Scope data for all castles in atlas
{
    [:str]: {
        "owner_team": [:str|null],
        "coords": {
            "y": [:float],
            "x": [:float]
        },
        "level": [:int]
    }
}

/api/v1/castle_info?cont_ids=[:list(str)]
# detailed breakdown of a castle’s information
# including executors, primarchs and their buffs
# and general infrastructure data
# timestamp (ts) is in epoch time format

{
    “[:str]“: {
        “fleets”: {
            “[:str]“: {
                “primarch_buffs”: {
                    “[:str]“: {
                        “defend”: {
                            “amount”: [:float],
                            “ts”: [:float]
                        },
                        “atk”: {
                            “amount”: [:float],
                            “ts”: [:float]
                        }
                    }
                },
                “alliance_name”: [:str],
                “level”: [:int],
                “dtype”: [:str], #primarch type
                “total_troops”: [:int],
                “blockade_until_epoch”: [:int], #this is the "end time" for blockade in epoch time format
                “team_name”: “[:str]“,
                “summon_epoch”: [:float]
            },
        },
        “last_renamed_ts”: [:int],
        “place_id”: { #castle ids in the format of k_id-region_id-cont_idx
            “cont_idx”: [:int], #from 0 to 4
            “k_id”: [:int], #always '1'
            “region_id”: [:str]
        },
        “last_battle_ts”: [:int],
        “infra”: {
            “online_epoch”: [:int],
            “hq”: {
                “upgrade_epoch”: [:int],
                “storage_level”: [:int],
                “executor”: {
                    “name”: [:str],
                    “epoch_appointed”: [:float]
                },
                “level”: [:int]
            },
            “refinery”: {
                “upgrade_epoch”: [:int],
                “storage_level”: [:int],
                “executor”: {
                    “name”: [:str],
                    “epoch_appointed”: [:float]
                },
                “level”: [:int]
            },
            “auto_upkeep”: [:bool],
            “bank”: {
                “upgrade_epoch”: [:int],
                “storage_level”: [:int],
                “executor”: {
                    “name”: [:str],
                    “epoch_appointed”: [:float]
                },
                “level”:[:int]
            },
            “upkeep_epoch”: [:float],
            “port”: { #tower
                “storage_level”: [:int],
                “level”: [:int],
                “sludge_cd”: [:int], #enfeeble cooldown left out of 600 seconds
                “executor”: {
                    “name”: [:str],
                    “epoch_appointed”: [:float]
                },
                “upgrade_epoch”: [:int]
            },
            “epoch_updated”: [:float],
            “fort”: {
                “storage_level”: [:int],
                “level”: [:int],
                “shield_ships_lost”: 0.0,
                “free_passages”: [:list(str)],
                “shield_time_ts”: [:int],
                “guards_hired_today”: [:int],
                “shield_turned_on”: [:bool],
                “executor”: {
                    “name”: [:str],
                    “epoch_appointed”: [:float]
                },
                “upgrade_epoch”: [:int],
                “day_idx”: [:int]
            }
        },
        “last_unlocked_ts”: [:float],
        “poi_kinds”: {
            “gold”: [:int]
        },
        “merchant_types”: [
            [:list(str)]
        ],
        “owner_team”: [:str],
        “custom_name”: [:str],
        “level”: [:int],
        “owned_since_epoch”: [:int],
        “mines”: {},
        “owner_alliance”: [:str]
    }
}