Skip to content
GridCraft
FeaturesPricingGamesDocsEditor
FeaturesPricingGamesDocsEditor
GridCraft

A tile map editor for game developers.

Product

  • Features
  • Pricing
  • Editor

Resources

  • Documentation
  • Get Started
  • Sign In
  • Dashboard

Community

  • Send feedback
  • Discord

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
© 2026 GridCraft. A product of OmniaDev Inc.
Documentation menu
  • Getting started

    • Introduction
  • Editor concepts

    • Tile layers
    • Object layers
    • Tilesets
    • Variable-sized tiles
    • Terrain brushes
    • AutoMap rules
    • Plugins
  • Workflows

    • Open a Tiled file
    • Convert to GridCraft
    • Real-time collaboration
    • Edit with AI agents
    • Save to cloud
    • Use the desktop app
  • Export formats

    • Tiled JSON
    • LDtk
    • Godot 4
    • GameMaker
    • Defold
    • LOVE2D (Lua)
    • CSV
    • Binary (server-ready)
  • Account & cloud

    • Cloud sync, devices, Discord
  • Admin

    • Audit log
  • API reference

    • Overview
    • Auth
    • Maps
    • Billing
    • Admin
    • Discord linking
    • Devices
  • Legal

    • Legal index
  • Getting started

    • Introduction
  • Editor concepts

    • Tile layers
    • Object layers
    • Tilesets
    • Variable-sized tiles
    • Terrain brushes
    • AutoMap rules
    • Plugins
  • Workflows

    • Open a Tiled file
    • Convert to GridCraft
    • Real-time collaboration
    • Edit with AI agents
    • Save to cloud
    • Use the desktop app
  • Export formats

    • Tiled JSON
    • LDtk
    • Godot 4
    • GameMaker
    • Defold
    • LOVE2D (Lua)
    • CSV
    • Binary (server-ready)
  • Account & cloud

    • Cloud sync, devices, Discord
  • Admin

    • Audit log
  • API reference

    • Overview
    • Auth
    • Maps
    • Billing
    • Admin
    • Discord linking
    • Devices
  • Legal

    • Legal index

Maps

All map endpoints require authentication.

GET /maps

List your maps. Returns metadata only, not content.

200 OK
{
  "maps": [
    {
      "id":         string,
      "name":       string,
      "format":     "json" | "tmx" | "tmj" | "zip",
      "sizeBytes":  number,
      "assetBytes": number,
      "createdAt":  string,
      "updatedAt":  string
    },
    ...
  ]
}

GET /maps/:id

Download a single map (full content included).

200 OK
{
  "map": {
    "id":                    string,
    "name":                  string,
    "format":                "json" | "tmx" | "tmj" | "zip",
    "content":               string,
    "sizeBytes":             number,
    "revision":              number,
    "backupIntervalMinutes": number,
    "role":                  "owner" | "editor" | "viewer",
    "createdAt":             string,
    "updatedAt":             string
  },
  "assets": [
    {
      "path":        string,
      "sizeBytes":   number,
      "contentType": string,
      "url":         string | null
    },
    ...
  ]
}

Errors
  404 MAP_NOT_FOUND

POST /maps

Create a new map. Enforces map count, single-file size, and total storage caps from your tier.

Body
{
  "name":    string (1-255),
  "format":  "json" | "tmx" | "tmj" | "zip"  (default "json"),
  "content": string                          (the map body)
}

201 Created
{ "map": { id, name, format, sizeBytes, createdAt, updatedAt } }

Errors
  400 VALIDATION_ERROR
  403 EMAIL_NOT_VERIFIED
  403 MAP_LIMIT_REACHED
  413 FILE_TOO_LARGE
  413 STORAGE_LIMIT_REACHED

PATCH /maps/:id

Update a map's name or content. Re-runs the size and storage checks when content changes.

Body
{
  "name"?:              string (1-255),
  "content"?:           string,
  "baseRevision"?:      number,
  "backupIntervalMinutes"?: number (min 60)
}

200 OK
{ "map": { id, name, format, sizeBytes, revision, createdAt, updatedAt } }

Errors
  400 VALIDATION_ERROR
  404 MAP_NOT_FOUND
  409 REVISION_CONFLICT
  413 FILE_TOO_LARGE
  413 STORAGE_LIMIT_REACHED

DELETE /maps/:id

Delete a map. Only the owner can call this.

200 OK
{ "deleted": true }

Errors
  404 MAP_NOT_FOUND