This article shows how to create a new ActiveMQ topic using the REST API.
Create ActiveMQ Topic
POST /activemq/topics
Creates a new ActiveMQ topic with the specified configuration, including general settings, state details, job information, and custom properties.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
jobDate |
integer | Schedule job date (Unix Timestamp). |
jobTags |
string | A comma-separated list of job tags (used only with jobDate). |
validateAccessForUser |
string | Validate endpoint access for user. |
waitForRead |
boolean | Whether to wait for cache update. |
Example Request
curl -X 'POST' \
'http://<hostname>:8019/rest/v1/activemq/topics' \
-H 'accept: */*' \
-H 'Authorization: Basic QWRtaW46YWRtaW4=' \
-H 'Content-Type: application/json' \
-d '{
"wgsName": "MQM",
"nodeName": "CMACTIVEMQ",
"managerName": "Activemq-server",
"brokerName": "DemoBroker",
"topicName": "SampleTopic",
"uri": "tcp://localhost:61616",
"general": {
"sendDuplicateFromStoreToDLQ": true,
"memoryLimit": 104857600,
"tempUsageLimit": 52428800,
"memoryUsagePortion": 20,
"producerFlowControl": true,
"alwaysRetroactive": false,
"blockedProducerWarningInterval": 30000,
"maxProducersToAudit": 1024,
"maxAuditDepth": 1000,
"maxPageSize": 500,
"useCache": true,
"prioritizedMessages": true,
"options": "persistent=true",
"dlq": true,
"advancedNetworkStatisticsEnabled": true,
"advancedMessageStatisticsEnabled": true
},
"state": {
"lastUpdated": "2025-09-26T14:16:10.145Z",
"enqueueCount": 0,
"dispatchCount": 0,
"dequeueCount": 0,
"duplicateFromStoreCount": 0,
"forwardCount": 0,
"inFlightCount": 0,
"expiredCount": 0,
"consumerCount": 2,
"producerCount": 1,
"queueSize": 0,
"storeMessageSize": 2048,
"memoryPercentUsage": 10,
"memoryUsageByteCount": 1048576,
"tempUsagePercentUsage": 5,
"maxEnqueueTime": 500,
"minEnqueueTime": 20,
"averageEnqueueTime": 200,
"averageMessageSize": 512,
"maxMessageSize": 2048,
"minMessageSize": 128,
"blockedSends": 0,
"averageBlockedTime": 0,
"totalBlockedTime": 0,
"maxUncommittedExceededCount": 0,
"networkEnqueues": 0,
"networkDequeues": 0,
"slowConsumerStrategy": "drop",
"subscriptionsCount": 3,
"enqueuedMessageBrokerInTime": 0,
"enqueuedMessageClientId": "client-1",
"enqueuedMessageId": "msg-123",
"enqueuedMessageTimestamp": 1695739200000,
"dequeuedMessageBrokerInTime": 0,
"dequeuedMessageBrokerOutTime": 0,
"dequeuedMessageClientId": "client-2",
"dequeuedMessageId": "msg-456",
"dequeuedMessageTimestamp": 1695739250000
},
"jobs": {
"totalJobCount": 5,
"scheduledJobCount": 2,
"canceledJobCount": 1,
"successJobCount": 1,
"failedJobCount": 1,
"readyJobCount": 1,
"pendingJobCount": 0,
"jobIds": ["job-001", "job-002"]
},
"customProperties": {
"additionalProp1": "custom-value-1",
"additionalProp2": "custom-value-2",
"additionalProp3": "custom-value-3"
}
}'Response Codes
201 Created – Topic successfully created.
304 Not Modified – Topic not created.
* Error response.
Example Response
201 Created: Returns created ActiveMQ Topic object
{
"wgsName": "MQM",
"nodeName": "CMACTIVEMQ",
"managerName": "Activemq-server",
"brokerName": "DemoBroker",
"topicName": "SampleTopic",
"uri": "tcp://localhost:61616",
"general": {
"sendDuplicateFromStoreToDLQ": true,
"memoryLimit": 104857600,
"tempUsageLimit": 52428800,
"memoryUsagePortion": 20,
"producerFlowControl": true,
"alwaysRetroactive": false,
"blockedProducerWarningInterval": 30000,
"maxProducersToAudit": 1024,
"maxAuditDepth": 1000,
"maxPageSize": 500,
"useCache": true,
"prioritizedMessages": true,
"options": "persistent=true",
"dlq": true,
"advancedNetworkStatisticsEnabled": true,
"advancedMessageStatisticsEnabled": true
},
"state": {
"lastUpdated": "2025-09-26T14:16:10.145Z",
"enqueueCount": 0,
"dispatchCount": 0,
"dequeueCount": 0,
"duplicateFromStoreCount": 0,
"forwardCount": 0,
"inFlightCount": 0,
"expiredCount": 0,
"consumerCount": 2,
"producerCount": 1,
"queueSize": 0,
"storeMessageSize": 2048,
"memoryPercentUsage": 10,
"memoryUsageByteCount": 1048576,
"tempUsagePercentUsage": 5,
"maxEnqueueTime": 500,
"minEnqueueTime": 20,
"averageEnqueueTime": 200,
"averageMessageSize": 512,
"maxMessageSize": 2048,
"minMessageSize": 128,
"blockedSends": 0,
"averageBlockedTime": 0,
"totalBlockedTime": 0,
"maxUncommittedExceededCount": 0,
"networkEnqueues": 0,
"networkDequeues": 0,
"slowConsumerStrategy": "drop",
"subscriptionsCount": 3,
"enqueuedMessageBrokerInTime": 0,
"enqueuedMessageClientId": "client-1",
"enqueuedMessageId": "msg-123",
"enqueuedMessageTimestamp": 1695739200000,
"dequeuedMessageBrokerInTime": 0,
"dequeuedMessageBrokerOutTime": 0,
"dequeuedMessageClientId": "client-2",
"dequeuedMessageId": "msg-456",
"dequeuedMessageTimestamp": 1695739250000
},
"jobs": {
"totalJobCount": 5,
"scheduledJobCount": 2,
"canceledJobCount": 1,
"successJobCount": 1,
"failedJobCount": 1,
"readyJobCount": 1,
"pendingJobCount": 0,
"jobIds": ["job-001", "job-002"]
},
"customProperties": {
"additionalProp1": "custom-value-1",
"additionalProp2": "custom-value-2",
"additionalProp3": "custom-value-3"
}
}
Reference Articles
Using the REST API using the Navigator demo system
Performing REST API operations using the Swagger UI