# EVE Online

> Read New Eden: market prices and price history at Jita and every other market, the full item database, solar systems with who holds them and what was killed there in the last hour, routes between systems with the security of every jump, the public record of any pilot, corporation or alliance, and the incursions running right now. Everything is asked for and answered by name, never by the numbers EVE uses underneath. No account, no key and no application to register: connect it and it works.

App · Gaming · 10 actions. Web page: https://docs.lodol.com/docs/integrations/eve-online

## Actions

### Check market prices

What an item is selling and buying for right now, at a trade hub or across a whole region. Gives the cheapest sell and the highest buy, how many units are on each side of the book, the spread between them, and the five keenest orders either way. This is the action for watching a price and acting when it moves.

**Inputs**

- Item (`item`, text, required): The item's name, exactly as the game spells it. Capitals do not matter, but the rest of the name does: EVE has a Rifter and a Rifter Fleet Issue and they are different ships.
- Where (`market`, text): Which market to read. The five trade hubs are where almost all of New Eden's trade happens, and Jita alone is most of it. Pick a whole region to see every station in it, including the quiet ones. Default: `hub:jita`.

**Outputs**

- `average_price_new_eden` (number): CCP's own average across all of New Eden, which the game uses for industry and insurance. Not a market price, and often some way off one.
- `buying` (object)
- `item` (text)
- `margin_percent` (number): The spread as a percentage of the sell price
- `matched_from` (text): Present when what was typed is not what was found
- `orders_found` (number)
- `region` (text)
- `selling` (object)
- `spread` (number): Best sell minus best buy, in ISK
- `trade_hub` (text): Present when one hub was read rather than a whole region
- `why_no_orders` (text): Present only when nothing is trading, and says why

**Example output**

```json
{
  "average_price_new_eden": 4.24,
  "buying": {
    "best_orders": [
      {
        "expires_in_days": 90,
        "location": "Jita IV - Moon 4 - Caldari Navy Assembly Plant",
        "minimum_quantity": 1,
        "placed_at": "2026-09-17T23:31:09Z",
        "price": 3.78,
        "quantity": 286382174,
        "quantity_originally": 537000000,
        "range": "station",
        "system": "Jita"
      }
    ],
    "best_price": 3.78,
    "orders": 37,
    "units_available": 8987965759
  },
  "item": "Tritanium",
  "margin_percent": 5.03,
  "orders_found": 84,
  "region": "The Forge",
  "selling": {
    "best_orders": [
      {
        "expires_in_days": 90,
        "location": "Jita IV - Moon 4 - Caldari Navy Assembly Plant",
        "minimum_quantity": 1,
        "placed_at": "2026-09-18T17:21:19Z",
        "price": 3.98,
        "quantity": 15598408,
        "quantity_originally": 15707265,
        "range": "region",
        "system": "Jita"
      }
    ],
    "best_price": 3.98,
    "orders": 47,
    "units_available": 1987562548
  },
  "spread": 0.2,
  "trade_hub": "Jita"
}
```

### Check the server

Whether Tranquility is up and how many pilots are logged in. The cluster restarts every day at 11:00 UTC, so this is what to put at the front of a scheduled workflow, and it is the quickest way to see the connection is working.

**Inputs**: None.

**Outputs**

- `game_version` (text)
- `note` (text)
- `online` (true/false)
- `online_for_hours` (number)
- `players_online` (number)
- `server` (text)
- `started_at` (text): When the cluster last came up
- `starting_up` (true/false): Back up, but only CCP staff can log in yet

**Example output**

```json
{
  "game_version": "3503375",
  "note": "Tranquility restarts every day at 11:00 UTC and is unreachable for a few minutes around it. 'Starting up' means it is back but still letting only CCP staff in.",
  "online": true,
  "online_for_hours": 6.4,
  "players_online": 28641,
  "server": "Tranquility",
  "started_at": "2026-09-18T11:03:09Z",
  "starting_up": false
}
```

### Get price history

What an item traded for day by day: the average, high and low price and how many units changed hands, plus the move across the whole stretch. EVE keeps about thirteen months of it. Leave the dates empty for the last month.

**Inputs**

- Item (`item`, text, required): The item's name, exactly as the game spells it. Capitals do not matter, but the rest of the name does: EVE has a Rifter and a Rifter Fleet Issue and they are different ships.
- Where (`market`, text): Which market to read. The five trade hubs are where almost all of New Eden's trade happens, and Jita alone is most of it. Pick a whole region to see every station in it, including the quiet ones. Default: `hub:jita`.
- From (`start_date`, date): The first day to include. Leave both dates empty for the last month. EVE keeps about thirteen months.
- To (`end_date`, date): The last day to include. Today's trading is added after downtime tomorrow, so the most recent day here is usually yesterday.

**Outputs**

- `average_price` (number): Across the whole stretch
- `change_percent` (number): First day's average to last day's average
- `day_count` (number)
- `days` (list)
- `from_date` (text)
- `highest_price` (number)
- `item` (text)
- `lowest_price` (number)
- `note` (text): That history is kept per region, not per station
- `region` (text)
- `to_date` (text)
- `units_traded` (number)
- `why_no_history` (text): Present only when no days came back, and says why

**Example output**

```json
{
  "average_price": 3.89,
  "change_percent": 3.64,
  "day_count": 30,
  "days": [
    {
      "average": 3.99,
      "date": "2026-09-17",
      "highest": 4.0,
      "lowest": 3.98,
      "orders": 1463,
      "units_traded": 4855772017
    }
  ],
  "from_date": "2026-08-19",
  "highest_price": 4.04,
  "item": "Tritanium",
  "lowest_price": 3.61,
  "note": "EVE keeps market history by region, so this covers every station in The Forge, not Jita alone.",
  "region": "The Forge",
  "to_date": "2026-09-17",
  "units_traded": 159680160375
}
```

### List incursions

Every Sansha incursion running right now, with the systems it has taken, where fleets are staging and how far it has been beaten back. Worth running on a schedule: an incursion in your own region is worth knowing about the day it spawns, and it makes the systems it holds noticeably more dangerous.

**Inputs**: None.

**Outputs**

- `incursion_count` (number)
- `incursions` (list)
- `note` (text)

**Example output**

```json
{
  "incursion_count": 1,
  "incursions": [
    {
      "constellation": "Fabas",
      "faction": "Sansha's Nation",
      "has_mothership": true,
      "influence_percent": 100.0,
      "staging_system": "Heorah",
      "state": "withdrawing",
      "systems": [
        "Agal",
        "Bania",
        "Doza",
        "Ebasez",
        "Girani-Fa",
        "Heorah",
        "Nasreri"
      ],
      "systems_affected": 7
    }
  ],
  "note": "An incursion runs through three states: mobilizing, then established, then withdrawing once its influence has been beaten down. A withdrawing one ends within days."
}
```

### Look up a corporation

A corporation's public record: its ticker, who runs it, how many pilots are in it, which alliance it flies with, what it taxes its members and whether war can be declared on it.

**Inputs**

- Corporation (`corporation`, text, required): The corporation's name. A partial name finds the first one it matches, and the result says which.

**Outputs**

- `corporation` (object)
- `matched_from` (text)

**Example output**

```json
{
  "corporation": {
    "at_war_eligible": true,
    "ceo": "A Bean CEO",
    "corporation_id": 98388312,
    "description": "Public Channel: Join HORDE",
    "founded": "2015-04-02T16:27:05Z",
    "founder": "Danielle Klausman",
    "home_station": "Jita IV - Moon 4 - Caldari Navy Assembly Plant",
    "logo_url": "https://images.evetech.net/corporations/98388312/logo?tenant=tranquility&size=128",
    "members": 5832,
    "name": "Pandemic Horde Inc.",
    "player_run": true,
    "tax_rate_percent": 10.0,
    "ticker": "THXFC",
    "website": "http://www.reddit.com/r/pandemichorde"
  }
}
```

### Look up a pilot

A pilot's public record: who they fly for now, every corporation they have flown for before, when they started playing, their security status and their portrait. Everything here is what any pilot can see in the game.

**Inputs**

- Pilot (`pilot`, text, required): The character's name. A partial name finds the first pilot it matches, and the result says who that was.

**Outputs**

- `matched_from` (text)
- `pilot` (object)

**Example output**

```json
{
  "pilot": {
    "alliance": "Pandemic Horde",
    "bloodline": "Gallente",
    "character_id": 2112102107,
    "corporation": "The Horde Holding Corp",
    "corporation_history": [
      {
        "corporation": "The Horde Holding Corp",
        "joined": "2017-02-10T13:24:00Z"
      },
      {
        "corporation": "Federal Navy Academy",
        "joined": "2016-12-24T03:47:00Z"
      }
    ],
    "flying_since": "2016-12-24T03:46:32Z",
    "gender": "male",
    "name": "Vigoroth",
    "portrait_url": "https://images.evetech.net/characters/2112102107/portrait?tenant=tranquility&size=512",
    "race": "Gallente",
    "security_status": 0.0,
    "title": "Johnny"
  }
}
```

### Look up a solar system

Where a system is, how dangerous it is, and what has happened in it in the last hour: ships and pods killed, and how many pilots passed through. Also says who holds sovereignty in null security, how contested it is in faction warfare, and whether an incursion is running there.

**Inputs**

- Solar system (`system`, text, required): The system's name, as the game spells it.

**Outputs**

- `matched_from` (text)
- `system` (object)

**Example output**

```json
{
  "system": {
    "activity": {
      "covers": "The last hour",
      "jumps_through": 142,
      "npcs_killed": 10,
      "pods_killed": 24,
      "ships_killed": 24
    },
    "constellation": "Isoma",
    "faction_warfare": {
      "contested_percent": 0.0,
      "held_by": "Caldari State",
      "occupied_by": "Caldari State",
      "state": "uncontested"
    },
    "name": "Tama",
    "planets": 9,
    "region": "The Citadel",
    "security_band": "Low security",
    "security_shown": 0.3,
    "security_status": 0.2826,
    "stargates": 3,
    "stations": 1,
    "system_id": 30002813
  }
}
```

### Look up an alliance

An alliance's public record: when it was founded, which corporation runs it, and every member corporation flying under it. The count is always exact.

**Inputs**

- Alliance (`alliance`, text, required): The alliance's name. A partial name finds the first one it matches, and the result says which.

**Outputs**

- `alliance` (object)
- `matched_from` (text)

**Example output**

```json
{
  "alliance": {
    "alliance_id": 99005338,
    "corporation_count": 2,
    "corporations": [
      "Pandemic Horde Inc.",
      "The Horde Holding Corp"
    ],
    "executor_corporation": "The Horde Holding Corp",
    "founded": "2015-04-02T16:29:43Z",
    "founder": "Danielle Klausman",
    "founding_corporation": "Pandemic Horde Inc.",
    "logo_url": "https://images.evetech.net/alliances/99005338/logo?tenant=tranquility&size=128",
    "name": "Pandemic Horde",
    "ticker": "REKTD"
  }
}
```

### Look up an item

Everything the game knows about an item: what it is, what it weighs, how much room it takes in a hauler, its in-game description, and CCP's own average price across New Eden. Works for every one of the fifty thousand things in EVE, from minerals to titans.

**Inputs**

- Item (`item`, text, required): The item's name, exactly as the game spells it. Capitals do not matter, but the rest of the name does: EVE has a Rifter and a Rifter Fleet Issue and they are different ships.

**Outputs**

- `item` (object)
- `matched_from` (text)

**Example output**

```json
{
  "item": {
    "average_price_new_eden": 284623.91,
    "capacity_m3": 140.0,
    "category": "Ship",
    "description": "The Rifter is a very powerful combat frigate and can easily tackle the best frigates out there.",
    "icon_url": "https://images.evetech.net/types/587/icon",
    "kind": "Frigate",
    "mass_kg": 1067000.0,
    "name": "Rifter",
    "on_the_market": true,
    "sold_in_lots_of": 1,
    "still_in_the_game": true,
    "type_id": 587,
    "volume_m3": 27289.0,
    "volume_packaged_m3": 2500.0
  }
}
```

### Plan a route

The jumps from one system to another, each one named and with its security, so it is clear before undocking whether the trip goes through low or null security. Choose the fewest jumps or the safest way round, and name any systems to steer clear of.

**Inputs**

- From (`origin`, text, required): The system to start in.
- To (`destination`, text, required): The system to end in.
- Route (`preference`, text): How to weigh the trip. The safest route can be several times longer than the shortest one, and EVE weighs security against distance rather than treating it as a rule, so where no high-security route exists the result says so. One of: `shortest` (Fewest jumps, whatever the security), `safest` (Favour high security, even if it is far longer), `least_secure` (Prefer low and null security). Default: `shortest`.
- Avoid these systems (`avoid`, list): Systems to route around, one per entry. The usual use is the high-security chokepoints where haulers get ganked, such as Uedama and Niarja.

**Outputs**

- `avoiding` (list)
- `from` (text)
- `jumps` (number): Gates to pass through
- `lowest_security` (number): The most dangerous system on the way
- `passes_through_low_security` (true/false)
- `passes_through_null_security` (true/false)
- `preference` (text)
- `route` (list): Every system on the way, in order, starting where you are
- `route_found` (true/false): False when there is no way to fly there
- `systems_below_high_security` (list): Every system on the way that is low or null security
- `to` (text)
- `warning` (text): Present when the safest route was asked for and the best one EVE could find still leaves high security
- `why` (text): Present only when there is no route

**Example output**

```json
{
  "from": "Jita",
  "jumps": 11,
  "lowest_security": 0.4,
  "passes_through_low_security": true,
  "passes_through_null_security": false,
  "preference": "Fewest jumps, whatever the security",
  "route": [
    {
      "jump": 0,
      "security_band": "High security",
      "security_shown": 0.9,
      "security_status": 0.9459,
      "system": "Jita"
    },
    {
      "jump": 4,
      "security_band": "Low security",
      "security_shown": 0.4,
      "security_status": 0.4205,
      "system": "Ahbazon"
    }
  ],
  "route_found": true,
  "systems_below_high_security": [
    "Ahbazon"
  ],
  "to": "Amarr"
}
```
