curl --request GET \
--url https://api-{dc}.moengage.com/v5/content-apis \
--header 'Authorization: Basic <encoded-value>'{
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91",
"type": "content-apis",
"data": [
{
"id": "66b3d1e0f2a4c58e9d7b3c21",
"name": "WeatherAPI",
"url": "https://api.example.com/v1/weather",
"method": "GET",
"params": {
"q": "Delhi",
"appid": "7f3a9c2e5b1d4860a2f7c9e3b5d81a04"
},
"headers": {},
"request_body_type": "JSON",
"request_body": {},
"oauth_enabled": false,
"oauth_prefix_for_header": "Bearer",
"caching_enabled": true,
"caching_ttl_in_minutes": 15,
"pii_fields_in_response": [
"email",
"phone"
],
"verified": true,
"last_tested_at": "2026-07-10T11:45:30Z",
"updated_at": "2026-07-10T11:45:30Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJsYXN0X2lkIjoiNjZiM2QxZTBmMmE0YzU4ZTlkN2IzYzIxIn0="
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "Use either 'name' or 'id', not both.",
"target": "id",
"details": [
{
"code": "INVALID_PARAMETER_COMBINATION",
"target": "id",
"message": "The 'id' parameter cannot be combined with 'name'."
}
]
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid authentication credentials.",
"target": "Authorization"
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "FORBIDDEN",
"message": "This API key does not have the scope required to read content APIs.",
"target": "Authorization"
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Workspace rate limit exceeded. Retry after 60 seconds."
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred while processing the request. Retry the request, and quote `response_id` if you contact MoEngage Support."
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}List Content APIs
Returns all content APIs in the workspace, or a single one when you supply name or id. Use either name or id, not both. Omit both parameters to list every content API in the workspace (paginated).
curl --request GET \
--url https://api-{dc}.moengage.com/v5/content-apis \
--header 'Authorization: Basic <encoded-value>'{
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91",
"type": "content-apis",
"data": [
{
"id": "66b3d1e0f2a4c58e9d7b3c21",
"name": "WeatherAPI",
"url": "https://api.example.com/v1/weather",
"method": "GET",
"params": {
"q": "Delhi",
"appid": "7f3a9c2e5b1d4860a2f7c9e3b5d81a04"
},
"headers": {},
"request_body_type": "JSON",
"request_body": {},
"oauth_enabled": false,
"oauth_prefix_for_header": "Bearer",
"caching_enabled": true,
"caching_ttl_in_minutes": 15,
"pii_fields_in_response": [
"email",
"phone"
],
"verified": true,
"last_tested_at": "2026-07-10T11:45:30Z",
"updated_at": "2026-07-10T11:45:30Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJsYXN0X2lkIjoiNjZiM2QxZTBmMmE0YzU4ZTlkN2IzYzIxIn0="
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "Use either 'name' or 'id', not both.",
"target": "id",
"details": [
{
"code": "INVALID_PARAMETER_COMBINATION",
"target": "id",
"message": "The 'id' parameter cannot be combined with 'name'."
}
]
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid authentication credentials.",
"target": "Authorization"
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "FORBIDDEN",
"message": "This API key does not have the scope required to read content APIs.",
"target": "Authorization"
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Workspace rate limit exceeded. Retry after 60 seconds."
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred while processing the request. Retry the request, and quote `response_id` if you contact MoEngage Support."
},
"response_id": "9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
}Authorizations
Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format username:password.
- Username: Use your MoEngage Workspace ID (also known as the App ID). Find it in the MoEngage dashboard at Settings > Account > API keys.
- Password: Use an API key from Settings > Account > API keys.
Refer to API Key Dashboard for details on creating and managing API keys.
Headers
Client-supplied trace ID (UUID v4). Echoed back in the X-MOE-Request-Id response header and returned unchanged as response_id in the body. When you omit this header, MoEngage generates a 12-character hexadecimal identifier instead. Quote it when contacting MoEngage Support.
On Test Content API, the body field request_id takes precedence: when you send both, response_id echoes request_id and this header is echoed only in the X-MOE-Request-Id response header.
Query Parameters
Exact content API name. Use either name or id, not both.
Content API ID — a bare 24-character hexadecimal ObjectId, with no resource prefix. Pass it exactly as returned in data[].id. Use either name or id, not both.
Page size. Max 20 per page.
x <= 20Opaque pagination cursor from a previous response.
Response
Content API list
Unique identifier for this response. Echoes the X-MOE-Request-Id header you sent, returned unchanged. When you omit it, MoEngage generates a 12-character hexadecimal identifier. Quote it when contacting MoEngage Support.
"9f2c1b7a-4d3e-4a08-b5c6-1e7d02f43a91"
The resource type contained in data. Always content-apis for this endpoint.
content-apis The content APIs matching your filters, up to limit per page.
Show child attributes
Show child attributes
Cursor pagination state for this page of results.
Show child attributes
Show child attributes