ToyHub Bulk Import

Bulk JSON import

Validate then commit an array of figures into the new ToyHub catalog schema.

Back to ToyHub

JSON template

Paste a JSON array of figure entries, or an object with entries plus optional defaults. Each entry matches CreateToyHubFigureRequest.

  • Hierarchy: exactly one of franchiseId or newFranchise; same for line (lineId / newLine) and group (groupId / newGroup).
  • Optional top-level defaults.franchiseId / defaults.lineId fill onto rows that omit both the id and the matching newX object (form fields below do the same).
  • Inline create: the first row that introduces a franchise/line/group uses newFranchise / newLine / newGroup. Later rows that need the same entity are rewritten to franchiseId / lineId / groupId during Validate.
  • Prices are integer cents (retailPrice, averagePrice, highPrice, lowPrice, numberSold). Required figure fields: figureName, year.
{
  "defaults": { "franchiseId": "action-force", "lineId": "action-force-figures" },
  "entries": [
    {
      "franchiseId": "action-force",
      "lineId": "action-force-figures",
      "groupId": "action-force-figures-wave-1",
      "figureName": "Example Figure",
      "year": 2024,
      "wave": "1",
      "retailPrice": 2499,
      "averagePrice": 3200,
      "numberSold": 12,
      "pricingSource": "sold-comps"
    },
    {
      "newFranchise": { "franchiseId": "op-monster-force", "name": "Operation Monster Force" },
      "newLine": {
        "lineId": "op-monster-force-figures",
        "name": "Figures",
        "manufacturer": "Example Co"
      },
      "newGroup": { "label": "Wave 1", "groupType": "wave" },
      "figureName": "First In Batch",
      "year": 2025,
      "retailPrice": 2999
    }
  ]
}

Input