Dev Insights Blog

Updates, tips, and stories to keep you in the loop

By: The ESI Development Team

Published: 2026-08-04

Military Campaigns on ESI: joining the war effort

Capsuleers,

Cradle of War brought Military Campaigns to New Eden: faction-wide efforts, built from objectives that any capsuleer can commit to and contribute to.

Six new routes cover the state of every campaign in New Eden and your own part in it, while the static data export supplies the definitions behind those campaigns. You can find the details of these new routes in the API Explorer using today's compatibility date (2026-08-04).

Campaigns and objectives

Four public routes describe what New Eden is currently fighting for. If you build campaign trackers, faction dashboards, or community leaderboards, this is for you!

  • The Campaign routes (/military-campaigns and /military-campaigns/{campaign_id}) list every campaign that is active, completed, or expired, with its state, progress, start and finish times.

  • The Objective routes (/military-campaigns/{campaign_id}/objectives and /military-campaigns/{campaign_id}/objectives/{objective_id}) drill into the individual objectives of a campaign, each with its own state and progress, plus a count of who is taking part.

Participation counts come in three flavors, and the distinction matters if you plan to rank or graph them:

  • Total: everyone who ever signed up, including those who have since resigned.

  • Committed: those signed up right now.

  • Contributors: those who made at least one contribution, even if they are no longer committed.

The listing routes return the same data as the detail routes. You would rarely need both, but looking up a single campaign or objective by ID is a natural pattern.

Worth knowing

  • Campaign and objective IDs are UUIDs, not the integers most of ESI uses, so anything assuming numeric IDs needs a different data type.

  • Campaigns or objectives that are scheduled or canceled are never visible: they are absent from the listings, and asking for one by ID returns a 404. ESI shows what New Eden is fighting for, not what is on the drawing board.

Your participation

Two authenticated routes, behind the new esi.activity.char:read scope, cover your own war effort:

  • /characters/{character_id}/military-campaigns/objectives lists every objective the character has participated in.

  • /characters/{character_id}/military-campaigns/objectives/{objective_id} gives the same information for one objective.

Both tell you whether the character is currently committed and how much they have contributed so far. You do not need to know which campaign an objective belongs to before the query: every entry carries its campaign ID.

Definitions in the static data export

You may notice the ESI routes carry no titles, descriptions, or targets. Those parts are localized, and the static data export is where message IDs can be matched to their text content.

Added in recent static data releases:

  • militaryCampaigns: the title, subtitle, target progress, issuer, and the presentation details the client uses.

  • militaryCampaignObjectives: the same for objectives, plus the career path, the ISK, LP, and standing rewards, and how contributions are counted.

Both are keyed by the same UUIDs ESI returns, so a single join gives you the full picture: the definition from static data, the live state from ESI.

One caveat: we only export definitions for recently active campaigns and objectives, and that export happens once a day when the static data is built. A campaign can therefore appear in ESI before its definition is added to the next build of static data. Treat a missing definition as normal rather than an error.

Schema changes are listed in schema-changelog.yaml.

Wrapping up

This release gives you the live state of every campaign and objective, an authenticated view of your own contribution, and the definitions to make sense of it all. The OpenAPI specs and API Explorer are the source of truth for field names, scopes, and cache timings.

As always, we love hearing your feedback, especially on the shape of the data and how it fits into your apps. Drop by the #3rd-party-dev-and-esi-chat channel in the official EVE Online Discord, and let us know what works and what doesn't. Huge thanks to the EVE Partnership Program members whose early access feedback shaped this release.

Cheers,

Your friendly developers of the EVE Soldier Inspiration (working title)