4 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

GET /v1/marAssetHash/{marAssetHash}/marCheckSum/{marCheckSum} — openapi

Retrieves an asset by its mar (moderation agnostic) hash and mar (moderation agnostic) checksum.

Endpoint

Method: GET

Path: /v1/marAssetHash/{marAssetHash}/marCheckSum/{marCheckSum}

Servers:

Parameters

NameLocationRequiredDescription
marAssetHashpathtrueThe mar (moderation agnostic) hash of the asset to retrieve.
marCheckSumpathtrueThe mar (moderation agnostic) checksum of the asset to retrieve.
Accept-Encodingheadertrue
Roblox-Place-Idheadertrue
AssetTypeheadertrue
AssetFormatheadertrue
Roblox-AssetFormatheadertrue
skipSigningScriptsqueryfalse
clientInsertqueryfalse
scriptinsertqueryfalse
modulePlaceIdqueryfalse
serverplaceidqueryfalse
expectedAssetTypequeryfalse
[
  {
    "in": "path",
    "name": "marAssetHash",
    "description": "The mar (moderation agnostic) hash of the asset to retrieve.",
    "required": true,
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "path",
    "name": "marCheckSum",
    "description": "The mar (moderation agnostic) checksum of the asset to retrieve.",
    "required": true,
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "header",
    "name": "Accept-Encoding",
    "required": true,
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "header",
    "name": "Roblox-Place-Id",
    "required": true,
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  },
  {
    "in": "header",
    "name": "AssetType",
    "required": true,
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "header",
    "name": "AssetFormat",
    "required": true,
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "header",
    "name": "Roblox-AssetFormat",
    "required": true,
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "query",
    "name": "skipSigningScripts",
    "schema": {
      "type": "boolean",
      "default": false
    }
  },
  {
    "in": "query",
    "name": "clientInsert",
    "schema": {
      "type": "integer",
      "format": "int32"
    }
  },
  {
    "in": "query",
    "name": "scriptinsert",
    "schema": {
      "type": "integer",
      "format": "int32"
    }
  },
  {
    "in": "query",
    "name": "modulePlaceId",
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  },
  {
    "in": "query",
    "name": "serverplaceid",
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  },
  {
    "in": "query",
    "name": "expectedAssetType",
    "schema": {
      "type": "string",
      "default": ""
    }
  }
]

Responses

StatusDescription
200OK
4002: invalid server request 3: Encoding cannot be empty
4045: Asset hash cannot be empty
{
  "200": {
    "description": "OK"
  },
  "400": {
    "description": "2: invalid server request\r\n3: Encoding cannot be empty"
  },
  "404": {
    "description": "5: Asset hash cannot be empty"
  }
}

Authentication

{
  "security": [
    {},
    {
      "roblox-legacy-cookie": []
    }
  ],
  "securitySchemes": {
    "roblox-api-key": {
      "type": "apiKey",
      "description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
      "name": "x-api-key",
      "in": "header"
    },
    "roblox-legacy-cookie": {
      "type": "apiKey",
      "description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
      "in": "cookie",
      "name": ".ROBLOSECURITY"
    },
    "roblox-oauth2": {
      "type": "oauth2",
      "description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
          "tokenUrl": "https://apis.roblox.com/oauth/v1/token",
          "refreshUrl": "https://apis.roblox.com/oauth/v1/token",
          "scopes": {}
        }
      }
    }
  }
}

Complete Operation Definition

{
  "tags": [
    "Assets"
  ],
  "summary": "Retrieves an asset by its mar (moderation agnostic) hash and mar (moderation agnostic) checksum.",
  "parameters": [
    {
      "in": "path",
      "name": "marAssetHash",
      "description": "The mar (moderation agnostic) hash of the asset to retrieve.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "marCheckSum",
      "description": "The mar (moderation agnostic) checksum of the asset to retrieve.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "header",
      "name": "Accept-Encoding",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "header",
      "name": "Roblox-Place-Id",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    },
    {
      "in": "header",
      "name": "AssetType",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "header",
      "name": "AssetFormat",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "header",
      "name": "Roblox-AssetFormat",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "skipSigningScripts",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "in": "query",
      "name": "clientInsert",
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "scriptinsert",
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "modulePlaceId",
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    },
    {
      "in": "query",
      "name": "serverplaceid",
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    },
    {
      "in": "query",
      "name": "expectedAssetType",
      "schema": {
        "type": "string",
        "default": ""
      }
    }
  ],
  "responses": {
    "200": {
      "description": "OK"
    },
    "400": {
      "description": "2: invalid server request\r\n3: Encoding cannot be empty"
    },
    "404": {
      "description": "5: Asset hash cannot be empty"
    }
  },
  "servers": [
    {
      "url": "https://assetdelivery.roblox.com"
    }
  ],
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "security": [
    {},
    {
      "roblox-legacy-cookie": []
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/assets#assetdelivery_get_v1_marAssetHash__marAssetHash__marCheckSum__marCheckSum_"
  },
  "x-roblox-recommended-alternatives": [
    {
      "url": "https://assetdelivery.roblox.com/v2/marAssetHash/{marAssetHash}/marCheckSum/{marCheckSum}",
      "httpMethod": "GET",
      "documentationUrl": "https://create.roblox.com/docs/cloud/reference/features/assets#assetdelivery_get_v2_marAssetHash__marAssetHash__marCheckSum__marCheckSum_"
    }
  ]
}