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 /ads-management/v1/creatives — openapi

List creatives

Lists the reusable creatives saved to the caller's billing account. Each creative includes its assetId, name, moderation status, dimensions, and source. Use isArchived to filter by archive state. Results are paginated with a cursor (pageToken).

Endpoint

Method: GET

Path: /ads-management/v1/creatives

Servers:

Parameters

NameLocationRequiredDescription
isArchivedqueryfalseFilter by archived status
maxPageSizequeryfalseMaximum results per page (1-100, default 50)
pageTokenqueryfalseOpaque cursor from a prior nextPageToken
[
  {
    "description": "Filter by archived status",
    "name": "isArchived",
    "in": "query",
    "schema": {
      "type": "boolean"
    }
  },
  {
    "description": "Maximum results per page (1-100, default 50)",
    "name": "maxPageSize",
    "in": "query",
    "schema": {
      "type": "integer"
    }
  },
  {
    "description": "Opaque cursor from a prior nextPageToken",
    "name": "pageToken",
    "in": "query",
    "schema": {
      "type": "string"
    }
  }
]

Responses

StatusDescription
200OK
400Invalid maxPageSize or pageToken
403Permission denied
429Rate limit exceeded
500Internal server error
{
  "200": {
    "description": "OK",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/internal_public_v1.ListCreativesResponse"
        }
      }
    }
  },
  "400": {
    "description": "Invalid maxPageSize or pageToken",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
        }
      }
    }
  },
  "403": {
    "description": "Permission denied",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
        }
      }
    }
  },
  "429": {
    "description": "Rate limit exceeded",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
        }
      }
    }
  },
  "500": {
    "description": "Internal server error",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
        }
      }
    }
  }
}

Authentication

{
  "security": [
    {
      "roblox-legacy-cookie": []
    },
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "ad.campaign:read"
      ]
    }
  ],
  "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

{
  "description": "Lists the reusable creatives saved to the caller's billing account. Each creative includes its assetId, name, moderation status, dimensions, and source. Use isArchived to filter by archive state. Results are paginated with a cursor (pageToken).",
  "tags": [
    "Advertising"
  ],
  "summary": "List creatives",
  "parameters": [
    {
      "description": "Filter by archived status",
      "name": "isArchived",
      "in": "query",
      "schema": {
        "type": "boolean"
      }
    },
    {
      "description": "Maximum results per page (1-100, default 50)",
      "name": "maxPageSize",
      "in": "query",
      "schema": {
        "type": "integer"
      }
    },
    {
      "description": "Opaque cursor from a prior nextPageToken",
      "name": "pageToken",
      "in": "query",
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/internal_public_v1.ListCreativesResponse"
          }
        }
      }
    },
    "400": {
      "description": "Invalid maxPageSize or pageToken",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
          }
        }
      }
    },
    "403": {
      "description": "Permission denied",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
          }
        }
      }
    },
    "429": {
      "description": "Rate limit exceeded",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
          }
        }
      }
    },
    "500": {
      "description": "Internal server error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/internal_public_v1.ErrorEnvelope"
          }
        }
      }
    }
  },
  "x-roblox-stability": "EXPERIMENTAL",
  "x-roblox-rate-limits": {
    "perApiKeyOwner": {
      "period": "MINUTE",
      "maxInPeriod": 600
    },
    "perOauth2Authorization": {
      "period": "MINUTE",
      "maxInPeriod": 600
    }
  },
  "x-roblox-scopes": [
    {
      "name": "ad.campaign:read",
      "targetResourceSpecifier": ""
    }
  ],
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "security": [
    {
      "roblox-legacy-cookie": []
    },
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "ad.campaign:read"
      ]
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/advertising#get_ads_management_v1_creatives"
  }
}