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/campaign-options — openapi
Get campaign options
Returns the values accepted when creating a campaign: supported objectives, payment types, ad formats, and targeting dimensions. When universeId is supplied, the response also includes an eligibility block indicating whether that experience can currently be advertised, along with the reasons when it cannot.
Endpoint
Method: GET
Path: /ads-management/v1/campaign-options
Servers:
https://apis.roblox.com
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
| universeId | query | false | Universe ID to check eligibility for |
| objective | query | false | Objective filter (PLAYS or the deprecated ENGAGEMENT) |
[
{
"description": "Universe ID to check eligibility for",
"name": "universeId",
"in": "query",
"schema": {
"type": "string"
}
},
{
"description": "Objective filter (PLAYS or the deprecated ENGAGEMENT)",
"name": "objective",
"in": "query",
"schema": {
"type": "string",
"enum": [
"PLAYS",
"ENGAGEMENT"
]
}
}
] Responses
| Status | Description |
|---|---|
| 200 | OK |
| 400 | Invalid objective or universeId |
| 403 | Permission denied |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/internal_public_v1.CampaignOptionsResponse"
}
}
}
},
"400": {
"description": "Invalid objective or universeId",
"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": "Returns the values accepted when creating a campaign: supported objectives, payment types, ad formats, and targeting dimensions. When universeId is supplied, the response also includes an eligibility block indicating whether that experience can currently be advertised, along with the reasons when it cannot.",
"tags": [
"Advertising"
],
"summary": "Get campaign options",
"parameters": [
{
"description": "Universe ID to check eligibility for",
"name": "universeId",
"in": "query",
"schema": {
"type": "string"
}
},
{
"description": "Objective filter (PLAYS or the deprecated ENGAGEMENT)",
"name": "objective",
"in": "query",
"schema": {
"type": "string",
"enum": [
"PLAYS",
"ENGAGEMENT"
]
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/internal_public_v1.CampaignOptionsResponse"
}
}
}
},
"400": {
"description": "Invalid objective or universeId",
"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_campaign_options"
}
}