Itch.io · Schema

Upload

A downloadable file associated with a game. May be wharf-enabled (versioned channel-based distribution via butler).

GamesIndie GamesGame DistributionGame MarketplaceDevelopers

Properties

Name Type Description
id integer Site-wide unique identifier generated by itch.io
storage string Storage backend: hosted (classic web upload), build (wharf/butler), or external
host string Hostname if storage is external
filename string Original file name (e.g. Overland_x64.zip)
displayName string Human-friendly name set by the developer (e.g. Overland for Windows 64-bit)
size integer Size in bytes; for wharf uploads this is the archive size
channelName string Name of the wharf channel for this upload; only set for wharf-enabled uploads
build object Latest build for this upload; only set for wharf-enabled uploads
buildId integer ID of the latest build; only set for wharf-enabled uploads
type string Upload type describing the content
preorder boolean Whether this upload is a pre-order placeholder
demo boolean Whether this upload is a free demo
platforms object Platforms this upload is compatible with
createdAt string RFC 3339 timestamp when this upload was created
updatedAt string RFC 3339 timestamp when this upload was last updated
View JSON Schema on GitHub

JSON Schema

upload.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.itch.io/schemas/upload.json",
  "title": "Upload",
  "description": "A downloadable file associated with a game. May be wharf-enabled (versioned channel-based distribution via butler).",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Site-wide unique identifier generated by itch.io"
    },
    "storage": {
      "type": "string",
      "enum": ["hosted", "build", "external"],
      "description": "Storage backend: hosted (classic web upload), build (wharf/butler), or external"
    },
    "host": {
      "type": "string",
      "description": "Hostname if storage is external"
    },
    "filename": {
      "type": "string",
      "description": "Original file name (e.g. Overland_x64.zip)"
    },
    "displayName": {
      "type": "string",
      "description": "Human-friendly name set by the developer (e.g. Overland for Windows 64-bit)"
    },
    "size": {
      "type": "integer",
      "description": "Size in bytes; for wharf uploads this is the archive size"
    },
    "channelName": {
      "type": "string",
      "description": "Name of the wharf channel for this upload; only set for wharf-enabled uploads"
    },
    "build": {
      "$ref": "build.json",
      "description": "Latest build for this upload; only set for wharf-enabled uploads"
    },
    "buildId": {
      "type": "integer",
      "description": "ID of the latest build; only set for wharf-enabled uploads"
    },
    "type": {
      "type": "string",
      "enum": [
        "default", "flash", "unity", "java", "html",
        "soundtrack", "book", "video", "documentation",
        "mod", "audio_assets", "graphical_assets", "sourcecode", "other"
      ],
      "description": "Upload type describing the content"
    },
    "preorder": {
      "type": "boolean",
      "description": "Whether this upload is a pre-order placeholder"
    },
    "demo": {
      "type": "boolean",
      "description": "Whether this upload is a free demo"
    },
    "platforms": {
      "type": "object",
      "description": "Platforms this upload is compatible with",
      "properties": {
        "windows": { "type": "string", "enum": ["all", "386", "amd64"] },
        "linux":   { "type": "string", "enum": ["all", "386", "amd64"] },
        "osx":     { "type": "string", "enum": ["all", "386", "amd64"] }
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp when this upload was created"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp when this upload was last updated"
    }
  },
  "required": ["id", "filename"]
}