JSON API Reference

Overview

All game data on salvageunion.io is available as machine-readable JSON. The API is static — every endpoint is a plain file served directly from the site. No authentication is required.

CORS is fully open (Access-Control-Allow-Origin: *), so you can fetch from any origin, including browser JavaScript.

Base URL: https://salvageunion.io

Tip: appending .json to any schema URL on this site returns the underlying data. For example, /schema/chassis renders the HTML index, and /schema/chassis.json serves the raw array. The same applies to individual entities: /schema/chassis/item/iron-mongrel.json.

Endpoints

GET

/schema/{schemaId}.json

Returns the full data array for a schema. Each element is a game entity.

Example: https://salvageunion.io/schema/chassis.json

[
  {
    "id": "iron-mongrel",
    "name": "Iron Mongrel",
    "hull": 30,
    "armor": 2,
    ...
  },
  ...
]

GET

/schema/{schemaId}.schema.json

Returns the JSON Schema definition for a schema, generated from the Zod validation schemas used in the SRD codebase. Useful for validating data or understanding the shape of entity objects.

Example: https://salvageunion.io/schema/chassis.schema.json

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": { "type": "string" },
      "name": { "type": "string" },
      ...
    }
  }
}

GET

/schema/{schemaId}/item/{itemId}.json

Returns a single entity by its slug. Entity slugs are lowercase, hyphen-separated versions of the entity name (e.g., Iron Mongrel becomes iron-mongrel). Slugs match the URLs used on the reference site.

Example: https://salvageunion.io/schema/chassis/item/iron-mongrel.json

{
  "id": "iron-mongrel",
  "name": "Iron Mongrel",
  "hull": 30,
  "armor": 2,
  ...
}

Usage Example

Fetch all chassis data in browser JavaScript:

const response = await fetch('https://salvageunion.io/schema/chassis.json')
const chassis = await response.json()
console.log(chassis[0].name) // "Iron Mongrel"

Available Schemas

The following schema IDs are available. Use them in the endpoint patterns above.

Schema IDNameItems
abilitiesAbilities103
bio-titansBio-Titans12
chassisChassis51
classesClasses11
crawler-baysCrawler Bays10
crawler-tech-levelsCrawler Tech Levels6
crawlersCrawlers5
creaturesCreatures13
distancesDistances4
dronesDrones14
equipmentEquipment82
factionsFactions10
guidesGuides15
keywordsKeywords82
meldMeld5
modulesModules83
npcsNPCs19
roll-tablesRoll Tables96
sourcesSources10
squadsSquads23
systemsSystems128
tech-levelsTech Levels6
traitsTraits45
vehiclesVehicles11

CORS Policy

All /schema/ endpoints include the following response headers:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Content-Type: application/json

No preflight requests are required for standard GET requests.

Licensing

Data returned by this API is published under the Salvage Union Open Game Licence (OGL 1.0b). Salvage Union is created and published by Leyline Press.

The licence covers game text and mechanics only. Entity artwork is not covered — those images are used on this site with special permission from Leyline Press and may not be redistributed. Republication of licensed text must include the legal notices required by the Salvage Union Open Game Licence 1.0b.