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/campaigns — openapi
List campaigns
Lists the campaigns in the caller's billing account. Campaigns are grouped by status (ACTIVE first, then PAUSED, then CANCELLED) and returned newest first within each group. Results are paginated with a cursor (pageToken); each page returns up to maxPageSize campaigns (default 50, max 100).
Endpoint
Method: GET
Path: /ads-management/v1/campaigns
Servers:
https://apis.roblox.com
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
| maxPageSize | query | false | Maximum results per page (1-100, default 50) |
| pageToken | query | false | Opaque cursor from a prior nextPageToken |
[
{
"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
| Status | Description |
|---|---|
| 200 | OK |
| 400 | Invalid maxPageSize or pageToken |
| 403 | Permission denied |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/internal_public_v1.ListCampaignsResponse"
}
}
}
},
"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": {}
}
}
}
}
} Related Schemas
Complete Operation Definition
{
"description": "Lists the campaigns in the caller's billing account. Campaigns are grouped by status (ACTIVE first, then PAUSED, then CANCELLED) and returned newest first within each group. Results are paginated with a cursor (pageToken); each page returns up to maxPageSize campaigns (default 50, max 100).",
"tags": [
"Advertising"
],
"summary": "List campaigns",
"parameters": [
{
"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.ListCampaignsResponse"
}
}
}
},
"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_campaigns"
}
}