SPACECRAFTDB

Developer API

The public API is available under /api/v1. It is unauthenticated, read-only, and intended for apps and websites that can cache aggressively.

Attribution

Any public display of API data must visibly credit SpaceCraftDB with a followed link. Use:

Data from <a href="https://spacecraftdb.com">SpaceCraftDB</a>

Links may use rel="noopener" when opening a new tab. Do not use nofollow, ugc, sponsored, or noreferrer.

Envelope

{
  "data": {},
  "meta": {
    "apiVersion": "1",
    "dataVersion": "38e663e79c4b97ed",
    "generatedAt": "2026-06-15T00:00:00Z",
    "attribution": {
      "required": true,
      "label": "Data from SpaceCraftDB",
      "url": "https://spacecraftdb.com"
    }
  },
  "links": {
    "self": "/api/v1/version.json"
  }
}

Cache Policy

Immutable snapshotspublic, max-age=31536000, s-maxage=31536000, immutable
Latest aliasespublic, max-age=300, s-maxage=3600, stale-while-revalidate=86400
Galaxy D1 routespublic, max-age=3600, s-maxage=86400, stale-while-revalidate=604800

Endpoint Reference

Select an endpoint family to inspect paths, parameters, cache policy, and the response shape.

GET Version /api/v1/version.json
/api/v1/version.json
Params
None
Cache-Control
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400

Response Shape

{
  "data": {
    "apiVersion": "1",
    "dataVersion": "38e663e79c4b97ed",
    "generatedAt": "2026-06-15T00:00:00Z",
    "attribution": { "...": "..." },
    "counts": { "items": 0, "resources": 0, "missions": 0 },
    "routes": { "...": "..." }
  },
  "meta": { "...": "standard envelope metadata" },
  "links": { "self": "/api/v1/version.json" }
}
GET Manifest /api/v1/latest/manifest.json
/api/v1/latest/manifest.json
Params
None
Cache-Control
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400

Response Shape

{
  "data": {
    "apiVersion": "1",
    "dataVersion": "38e663e79c4b97ed",
    "generatedAt": "2026-06-15T00:00:00Z",
    "counts": { "items": 0, "resources": 0, "permits": 0 },
    "payloads": {
      "items": {
        "path": "/api/v1/data/38e663e79c4b97ed/items.json",
        "latest": "/api/v1/latest/items.json",
        "sha256": "..."
      }
    },
    "attribution": { "...": "..." }
  },
  "meta": { "...": "standard envelope metadata" },
  "links": { "self": "/api/v1/latest/manifest.json" }
}
GET Stats /api/v1/stats.json
/api/v1/stats.json
Params
None
Cache-Control
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400

Response Shape

{
  "data": {
    "items": 0,
    "resources": 0,
    "permits": 0,
    "missions": 0
  },
  "meta": { "...": "standard envelope metadata" },
  "links": { "self": "/api/v1/stats.json" }
}
GET OpenAPI /api/v1/openapi.json
/api/v1/openapi.json
Params
None
Cache-Control
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400

Response Shape

{
  "openapi": "3.1.0",
  "info": { "title": "SpaceCraftDB API", "version": "1" },
  "paths": { "/api/v1/version.json": { "get": { "...": "..." } } }
}
GET Slim Indexes /api/v1/latest/items/index.json
/api/v1/latest/items/index.json/api/v1/latest/resources/index.json/api/v1/latest/missions/index.json
Params
None
Cache-Control
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400

Response Shape

{
  "data": [
    {
      "id": "item-id",
      "slug": "aluminum-ingot",
      "name": "Aluminum Ingot",
      "href": "https://spacecraftdb.com/items/aluminum-ingot",
      "icon": { "file": "atlas.png", "x": 0, "y": 0, "size": 64 },
      "category": "Material",
      "price": 0,
      "storage": 1,
      "hasModel": false
    }
  ],
  "meta": { "count": 0, "...": "standard envelope metadata" },
  "links": { "self": "/api/v1/latest/items/index.json" }
}
GET Latest Snapshots /api/v1/latest/items.json
/api/v1/latest/items.json/api/v1/latest/resources.json/api/v1/latest/permits.json/api/v1/latest/missions.json/api/v1/latest/tech.json/api/v1/latest/crafting/graph.json/api/v1/latest/galaxy/quadrants.json
Params
None
Cache-Control
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400

Response Shape

{
  "data": [
    {
      "id": "item-id",
      "slug": "aluminum-ingot",
      "name": "Aluminum Ingot",
      "desc": "...",
      "attributes": [],
      "sources": {
        "craftedBy": [],
        "usedIn": [],
        "minedFrom": [],
        "unlockedBy": []
      }
    }
  ],
  "meta": {
    "payload": { "key": "items", "sourceSha256": "...", "sourceBytes": 0 },
    "...": "standard envelope metadata"
  },
  "links": {
    "self": "/api/v1/latest/items.json",
    "immutable": "/api/v1/data/38e663e79c4b97ed/items.json"
  }
}
GET Immutable Snapshots /api/v1/data/{version}/items.json
/api/v1/data/{version}/items.json/api/v1/data/{version}/resources.json/api/v1/data/{version}/permits.json/api/v1/data/{version}/missions.json/api/v1/data/{version}/tech.json/api/v1/data/{version}/crafting/graph.json/api/v1/data/{version}/galaxy/quadrants.json
Params
version must match the current data version: 38e663e79c4b97ed
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable

Response Shape

{
  "data": [ "...same payload shape as the matching latest snapshot..." ],
  "meta": {
    "dataVersion": "38e663e79c4b97ed",
    "payload": { "key": "items", "sourceSha256": "...", "sourceBytes": 0 }
  },
  "links": {
    "self": "/api/v1/data/38e663e79c4b97ed/items.json",
    "latest": "/api/v1/latest/items.json"
  }
}
GET Item Detail /api/v1/items/{slug}.json
/api/v1/items/{slug}.json
Params
slug: lowercase item slug from the items index
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable

Response Shape

{
  "data": {
    "id": "item-id",
    "slug": "aluminum-ingot",
    "name": "Aluminum Ingot",
    "href": "https://spacecraftdb.com/items/aluminum-ingot",
    "desc": "...",
    "badges": [],
    "attributes": [],
    "effects": [],
    "skills": [],
    "tags": [],
    "tiers": [],
    "sources": {
      "craftedBy": [],
      "usedIn": [],
      "minedFrom": [],
      "unlockedBy": []
    }
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/items/aluminum-ingot.json",
    "html": "https://spacecraftdb.com/items/aluminum-ingot"
  }
}
GET Resource Detail /api/v1/resources/{slug}.json
/api/v1/resources/{slug}.json
Params
slug: lowercase resource slug from the resources index
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable

Response Shape

{
  "data": {
    "id": "resource-id",
    "slug": "alu-deposit",
    "name": "Alu Deposit",
    "href": "https://spacecraftdb.com/resources/alu-deposit",
    "icon": { "file": "atlas.png", "x": 0, "y": 0, "size": 64 },
    "tier": 0,
    "type": "deposit",
    "desc": "...",
    "drops": []
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/resources/alu-deposit.json",
    "html": "https://spacecraftdb.com/resources/alu-deposit"
  }
}
GET Permit Detail /api/v1/permits/{slug}.json
/api/v1/permits/{slug}.json
Params
slug: lowercase permit slug
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable

Response Shape

{
  "data": {
    "id": "permit-id",
    "slug": "electromagnetism",
    "name": "Electromagnetism",
    "href": "https://spacecraftdb.com/permits/electromagnetism",
    "cost": 0,
    "currency": "research",
    "requires": [],
    "unlocks": [],
    "attributeUnlocks": []
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/permits/electromagnetism.json",
    "html": "https://spacecraftdb.com/permits/electromagnetism"
  }
}
GET Mission Detail /api/v1/missions/{slug}.json
/api/v1/missions/{slug}.json
Params
slug: lowercase mission slug from the missions index
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable

Response Shape

{
  "data": {
    "id": "mission-id",
    "slug": "first-steps",
    "title": "First Steps",
    "href": "https://spacecraftdb.com/missions/first-steps",
    "order": 0,
    "kind": "...",
    "category": "...",
    "goal": "...",
    "requires": [],
    "rewards": [],
    "steps": [{ "text": "..." }],
    "intercom": [{ "text": "..." }]
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/missions/first-steps.json",
    "html": "https://spacecraftdb.com/missions/first-steps"
  }
}
GET Tech /api/v1/tech.json
/api/v1/tech.json/api/v1/tech/nodes/{idOrSlug}.json
Params
idOrSlug: tech node id or slug for node detail routes
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable

Response Shape

{
  "data": {
    "id": "tech-node-id",
    "slug": "electromagnetism",
    "name": "Electromagnetism",
    "section": "perks",
    "track": "optional-track-slug",
    "requires": [],
    "unlocks": []
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/tech/nodes/electromagnetism.json",
    "html": "https://spacecraftdb.com/tech-tree#electromagnetism"
  }
}
GET Galaxy Map /api/v1/latest/galaxy/{quadrant}/map.json
/api/v1/latest/galaxy/{quadrant}/map.json
Params
quadrant: lowercase quadrant slug
Cache-Control
public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800

Response Shape

{
  "data": {
    "w": 0,
    "h": 0,
    "sys": [
      { "id": "system-id", "slug": "system-slug", "n": "System Name", "x": 0, "y": 0 }
    ],
    "edges": [[0, 1]],
    "sectors": [
      { "id": "sector-id", "name": "Sector Name", "hull": [[0, 0]], "cx": 0, "cy": 0 }
    ]
  },
  "meta": { "...": "standard envelope metadata" },
  "links": { "self": "/api/v1/latest/galaxy/vexasux/map.json" }
}
GET Galaxy Facets /api/v1/latest/galaxy/{quadrant}/facets.json
/api/v1/latest/galaxy/{quadrant}/facets.json
Params
quadrant: lowercase quadrant slug
Cache-Control
public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800

Response Shape

{
  "data": {
    "resources": [{ "slug": "alu-deposit", "name": "Alu Deposit", "tier": 0 }],
    "services": [{ "id": "market", "name": "Market", "kind": "service" }],
    "systems": {
      "system-id": { "r": [0], "s": [0], "names": ["System Name"] }
    }
  },
  "meta": { "...": "standard envelope metadata" },
  "links": { "self": "/api/v1/latest/galaxy/vexasux/facets.json" }
}
GET Galaxy System /api/v1/latest/galaxy/{quadrant}/systems/{system}.json
/api/v1/latest/galaxy/{quadrant}/systems/{system}.json
Params
quadrant: lowercase quadrant slug; system: lowercase system slug
Cache-Control
public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800

Response Shape

{
  "data": {
    "id": "system-id",
    "slug": "example-system",
    "name": "Example System",
    "star": "...",
    "planets": [
      { "idx": 0, "name": "Planet Name", "resources": [] }
    ],
    "connections": [
      { "id": "neighbor-id", "slug": "neighbor-system", "name": "Neighbor System" }
    ],
    "stations": []
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/latest/galaxy/vexasux/systems/example-system.json",
    "html": "https://spacecraftdb.com/galaxy/vexasux/example-system"
  }
}
GET Galaxy Planet /api/v1/latest/galaxy/{quadrant}/systems/{system}/planets/{idx}.json
/api/v1/latest/galaxy/{quadrant}/systems/{system}/planets/{idx}.json
Params
quadrant: lowercase quadrant slug; system: lowercase system slug; idx: zero-based planet index
Cache-Control
public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800

Response Shape

{
  "data": {
    "idx": 0,
    "name": "Planet Name",
    "lx": 0,
    "ly": 0,
    "resources": [
      { "id": "resource-id", "slug": "alu-deposit", "name": "Alu Deposit", "tier": 0 }
    ]
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/latest/galaxy/vexasux/systems/example-system/planets/0.json",
    "html": "https://spacecraftdb.com/galaxy/vexasux/example-system/0"
  }
}
GET Tooltip Data /api/v1/items/{slug}/tooltip.json
/api/v1/items/{slug}/tooltip.json/api/v1/items/tooltips.json?slugs=slug-a,slug-b
Params
slug: lowercase item slug; slugs: comma-separated item slugs, maximum 40
Cache-Control
public, max-age=31536000, s-maxage=31536000, immutable for single item tooltip; public, max-age=300, s-maxage=3600, stale-while-revalidate=86400 for batch tooltip requests

Response Shape

{
  "data": {
    "schema": "scdb.item-tooltip.v1",
    "id": "item-id",
    "slug": "aluminum-ingot",
    "name": "Aluminum Ingot",
    "url": "https://spacecraftdb.com/items/aluminum-ingot",
    "description": "...",
    "icon": { "file": "atlas.png", "x": 0, "y": 0, "size": 64 },
    "price": 0,
    "storage": 1,
    "lootTier": 0,
    "attributes": [],
    "craftedFrom": [],
    "counts": { "craftedBy": 0, "usedIn": 0, "minedFrom": 0, "unlockedBy": 0 }
  },
  "meta": { "...": "standard envelope metadata" },
  "links": {
    "self": "/api/v1/items/aluminum-ingot/tooltip.json",
    "html": "https://spacecraftdb.com/items/aluminum-ingot"
  }
}

Errors

{
  "error": {
    "code": "not_found",
    "message": "Item not found",
    "details": { "slug": "missing-item" }
  },
  "meta": { "...": "..." },
  "links": { "self": "/api/v1/items/missing-item.json" }
}