Skip to main content

Actions

The ballerinax/salesforce.marketingcloud package exposes the following clients:

ClientPurpose
ClientProvides programmatic access to Salesforce Marketing Cloud REST APIs for journeys, events, campaigns, contacts, data extensions, assets, and messaging.

Client​

Provides programmatic access to Salesforce Marketing Cloud REST APIs for journeys, events, campaigns, contacts, data extensions, assets, and messaging.

Configuration​

FieldTypeDefaultDescription
authOAuth2ClientCredentialsGrantConfigRequiredOAuth 2.0 client credentials configuration with clientId, clientSecret, and accountId.
httpVersionHttpVersionHTTP_2_0HTTP protocol version.
timeoutdecimal30Request timeout in seconds.
retryConfigRetryConfig()Retry configuration for failed requests.
secureSocketClientSecureSocket()SSL/TLS configuration.
proxyProxyConfig()Proxy server configuration.
circuitBreakerCircuitBreakerConfig()Circuit breaker configuration for fault tolerance.
cacheCacheConfig{}HTTP caching configuration.
compressionCompressionAUTOHTTP compression setting.
validationbooleantrueEnable/disable payload validation.
laxDataBindingbooleantrueEnable/disable lax data binding for responses.

Initializing the client​

import ballerinax/salesforce.marketingcloud as mc;

configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string subDomain = ?;
configurable string accountId = ?;

mc:Client mcClient = check new (subDomain, {
auth: {
clientId,
clientSecret,
accountId
}
});

Operations​

Event management​

getEventDefinitions

Retrieves a list of event definitions.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetEventDefinitionsQueriesNoQuery parameters for filtering and pagination.

Returns: EventDefinitionList|error

Sample code:

mc:EventDefinitionList events = check mcClient->getEventDefinitions();

Sample response:

{"count": 2, "items": [{"id": "a1b2c3d4", "name": "Welcome Event", "type": "APIEvent", "eventDefinitionKey": "welcome-event-key"}, {"id": "e5f6g7h8", "name": "Purchase Event", "type": "APIEvent", "eventDefinitionKey": "purchase-event-key"}]}
createEventDefinition

Creates a new event definition.

Parameters:

NameTypeRequiredDescription
payloadEventDefinitionYesThe event definition to create.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: EventDefinition|error

Sample code:

mc:EventDefinition event = check mcClient->createEventDefinition({
name: "New Signup Event",
'type: "APIEvent",
eventDefinitionKey: "new-signup-event"
});

Sample response:

{"id": "f9e8d7c6", "name": "New Signup Event", "type": "APIEvent", "eventDefinitionKey": "new-signup-event", "createdDate": "2025-01-15T10:30:00Z"}
getEventDefinitionByKey

Retrieves an event definition by its key.

Parameters:

NameTypeRequiredDescription
eventDefinitionKeystringYesKey of the event definition.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: EventDefinition|error

Sample code:

mc:EventDefinition event = check mcClient->getEventDefinitionByKey("welcome-event-key");

Sample response:

{"id": "a1b2c3d4", "name": "Welcome Event", "type": "APIEvent", "eventDefinitionKey": "welcome-event-key"}
updateEventDefinitionByKey

Updates an event definition identified by its key.

Parameters:

NameTypeRequiredDescription
eventDefinitionKeystringYesKey of the event definition.
payloadEventDefinitionYesUpdated event definition payload.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: EventDefinition|error

Sample code:

mc:EventDefinition updated = check mcClient->updateEventDefinitionByKey("welcome-event-key", {
name: "Updated Welcome Event",
'type: "APIEvent",
eventDefinitionKey: "welcome-event-key"
});

Sample response:

{"id": "a1b2c3d4", "name": "Updated Welcome Event", "type": "APIEvent", "eventDefinitionKey": "welcome-event-key"}
deleteEventDefinitionByKey

Deletes an event definition by its key.

Parameters:

NameTypeRequiredDescription
eventDefinitionKeystringYesKey of the event definition.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: json|error

Sample code:

json result = check mcClient->deleteEventDefinitionByKey("welcome-event-key");

Sample response:

{"message": "Event definition deleted successfully"}
updateEventDefinitionById

Updates an event definition identified by its ID.

Parameters:

NameTypeRequiredDescription
eventDefinitionIdstringYesID of the event definition.
payloadEventDefinitionYesUpdated event definition payload.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: EventDefinition|error

Sample code:

mc:EventDefinition updated = check mcClient->updateEventDefinitionById("a1b2c3d4", {
name: "Renamed Event",
'type: "APIEvent",
eventDefinitionKey: "welcome-event-key"
});

Sample response:

{"id": "a1b2c3d4", "name": "Renamed Event", "type": "APIEvent", "eventDefinitionKey": "welcome-event-key"}
deleteEventDefinitionById

Deletes an event definition by its ID.

Parameters:

NameTypeRequiredDescription
eventDefinitionIdstringYesID of the event definition.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: json|error

Sample code:

json result = check mcClient->deleteEventDefinitionById("a1b2c3d4");

Sample response:

{"message": "Event definition deleted successfully"}
fireEntryEvent

Fires an entry event to inject a contact into a journey.

Parameters:

NameTypeRequiredDescription
payloadFireEventYesThe event payload with contact key and event data.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: FireEventResponse|error

Sample code:

mc:FireEventResponse res = check mcClient->fireEntryEvent({
contactKey: "[email protected]",
eventDefinitionKey: "welcome-event-key",
data: {
"Email": "[email protected]",
"FirstName": "Jane"
}
});

Sample response:

{"requestId": "r1a2b3c4-d5e6-f7g8-h9i0-j1k2l3m4n5o6", "eventInstanceId": "e1a2b3c4-d5e6-f7g8-h9i0-j1k2l3m4n5o6"}

Journey management​

getJourneys

Retrieves a list of journeys (interactions).

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetJourneysQueriesNoQuery parameters for filtering and pagination.

Returns: JourneysList|error

Sample code:

mc:JourneysList journeys = check mcClient->getJourneys();

Sample response:

{"count": 1, "items": [{"id": "j1a2b3c4-d5e6-f7g8-h9i0", "key": "seasonal-journey", "name": "Seasonal Journey", "status": "Published", "version": 1}]}
createJourney

Creates a new journey (interaction).

Parameters:

NameTypeRequiredDescription
payloadJourneyYesThe journey definition to create.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Journey|error

Sample code:

mc:Journey journey = check mcClient->createJourney({
name: "Welcome Journey",
'key: "welcome-journey-key"
});

Sample response:

{"id": "j9e8d7c6-b5a4-3210", "key": "welcome-journey-key", "name": "Welcome Journey", "status": "Draft", "version": 1}
updateJourney

Updates an existing journey version.

Parameters:

NameTypeRequiredDescription
payloadUpdateJourneyYesUpdated journey payload.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Journey|error

Sample code:

mc:Journey updated = check mcClient->updateJourney({
id: "j1a2b3c4-d5e6-f7g8-h9i0",
name: "Updated Seasonal Journey",
'key: "seasonal-journey"
});

Sample response:

{"id": "j1a2b3c4-d5e6-f7g8-h9i0", "key": "seasonal-journey", "name": "Updated Seasonal Journey", "status": "Draft", "version": 2}
getJourneyById

Retrieves a journey by its ID (UUID).

Parameters:

NameTypeRequiredDescription
journeyIdstringYesID of version 1 of the journey (UUID).
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetJourneyByIdQueriesNoQuery parameters (e.g., extras).

Returns: Journey|error

Sample code:

mc:Journey journey = check mcClient->getJourneyById("j1a2b3c4-d5e6-f7g8-h9i0");

Sample response:

{"id": "j1a2b3c4-d5e6-f7g8-h9i0", "key": "seasonal-journey", "name": "Seasonal Journey", "status": "Published", "version": 1}
updateJourneyById

Updates an existing journey by its ID.

Parameters:

NameTypeRequiredDescription
journeyIdstringYesID of the journey (UUID).
payloadUpdateJourneyYesUpdated journey payload.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Journey|error

Sample code:

mc:Journey updated = check mcClient->updateJourneyById("j1a2b3c4-d5e6-f7g8-h9i0", {
name: "Renamed Journey"
});

Sample response:

{"id": "j1a2b3c4-d5e6-f7g8-h9i0", "name": "Renamed Journey", "status": "Draft", "version": 2}
deleteJourneyById

Deletes a journey by its ID. Deletes all versions unless a version number is specified.

Parameters:

NameTypeRequiredDescription
journeyIdstringYesID of the journey (UUID).
headersmap<string|string[]>NoOptional HTTP headers.
queriesDeleteJourneyByIdQueriesNoQuery parameters (e.g., versionNumber).

Returns: json|error

Sample code:

json result = check mcClient->deleteJourneyById("j1a2b3c4-d5e6-f7g8-h9i0");

Sample response:

{"message": "Journey deleted successfully"}
getJourneyByKey

Retrieves a journey by its key.

Parameters:

NameTypeRequiredDescription
keystringYesThe key of the journey.
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetJourneyByKeyQueriesNoQuery parameters (e.g., extras).

Returns: Journey|error

Sample code:

mc:Journey journey = check mcClient->getJourneyByKey("seasonal-journey");

Sample response:

{"id": "j1a2b3c4-d5e6-f7g8-h9i0", "key": "seasonal-journey", "name": "Seasonal Journey", "status": "Published", "version": 1}
updateJourneyByKey

Updates an existing journey by its key.

Parameters:

NameTypeRequiredDescription
keystringYesThe key of the journey.
payloadUpdateJourneyYesUpdated journey payload.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Journey|error

Sample code:

mc:Journey updated = check mcClient->updateJourneyByKey("seasonal-journey", {
name: "Updated Seasonal Journey"
});

Sample response:

{"id": "j1a2b3c4-d5e6-f7g8-h9i0", "key": "seasonal-journey", "name": "Updated Seasonal Journey", "status": "Draft", "version": 2}
deleteJourneyByKey

Deletes a journey by its key. Deletes all versions unless a version number is specified.

Parameters:

NameTypeRequiredDescription
keystringYesKey of the journey.
headersmap<string|string[]>NoOptional HTTP headers.
queriesDeleteJourneyByKeyQueriesNoQuery parameters (e.g., versionNumber).

Returns: json|error

Sample code:

json result = check mcClient->deleteJourneyByKey("seasonal-journey");

Sample response:

{"message": "Journey deleted successfully"}

Contact membership & exit​

getContactMembership

Retrieves the list of journeys a contact is currently enrolled in.

Parameters:

NameTypeRequiredDescription
payloadContactMembershipRequestYesRequest containing contact key list.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ContactMembershipResponse|error

Sample code:

mc:ContactMembershipResponse membership = check mcClient->getContactMembership({
contactKeyList: ["[email protected]"]
});

Sample response:

{"results": {"contactMemberships": [{"contactKey": "[email protected]", "definitionKey": "aa0c871b-d1eb-66fb-c039-0a7cab4e20cd", "journeyName": "Seasonal Journey", "status": "Active"}]}}
removeContactFromJourney

Removes a contact from a journey.

Parameters:

NameTypeRequiredDescription
payloadContactExitRequestYesContact exit request payload.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ContactExitResponse|error

Sample code:

mc:ContactExitResponse res = check mcClient->removeContactFromJourney({
contactKey: "[email protected]",
definitionKey: "seasonal-journey-key"
});

Sample response:

{"status": "Accepted", "message": "Contact exit request received"}
getContactExitStatus

Retrieves the exit status of a contact removal request.

Parameters:

NameTypeRequiredDescription
payloadContactExitRequestYesContact exit request to check status for.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ContactExitStatusResponse|error

Sample code:

mc:ContactExitStatusResponse status = check mcClient->getContactExitStatus({
contactKey: "[email protected]",
definitionKey: "seasonal-journey-key"
});

Sample response:

{"contactKey": "[email protected]", "definitionKey": "seasonal-journey-key", "status": "Completed"}

Email validation​

validateEmail

Validates an email address.

Parameters:

NameTypeRequiredDescription
payloadValidateEmailRequestYesRequest containing the email to validate.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ValidateEmailResponse|error

Sample code:

mc:ValidateEmailResponse validation = check mcClient->validateEmail({
email: "[email protected]"
});

Sample response:

{"valid": true, "email": "[email protected]"}

Campaign management​

getCampaigns

Retrieves a list of campaigns.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetCampaignsQueriesNoQuery parameters for filtering and pagination.

Returns: CampaignList|error

Sample code:

mc:CampaignList campaigns = check mcClient->getCampaigns();

Sample response:

{"count": 2, "items": [{"id": "c001", "name": "Spring Sale 2025", "description": "Spring promotional campaign", "createdDate": "2025-03-01T00:00:00Z"}, {"id": "c002", "name": "Summer Campaign", "description": "Summer outreach", "createdDate": "2025-06-01T00:00:00Z"}]}
createCampaign

Creates a new campaign.

Parameters:

NameTypeRequiredDescription
payloadUpsertCampaignYesCampaign details to create.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Campaign|error

Sample code:

mc:Campaign campaign = check mcClient->createCampaign({
name: "Holiday Campaign 2025",
description: "End-of-year holiday promotions"
});

Sample response:

{"id": "c003", "name": "Holiday Campaign 2025", "description": "End-of-year holiday promotions", "createdDate": "2025-11-01T10:00:00Z"}
updateCampaign

Updates an existing campaign by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesID of the campaign to update.
payloadUpsertCampaignYesUpdated campaign details.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Campaign|error

Sample code:

mc:Campaign updated = check mcClient->updateCampaign("c003", {
name: "Holiday Campaign 2025 (Updated)",
description: "Revised holiday promotions"
});

Sample response:

{"id": "c003", "name": "Holiday Campaign 2025 (Updated)", "description": "Revised holiday promotions", "createdDate": "2025-11-01T10:00:00Z"}
deleteCampaign

Deletes a campaign by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesID of the campaign to delete.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: error?

Sample code:

check mcClient->deleteCampaign("c003");

Data extension operations​

upsertDERowSetByKey

Upserts (inserts or updates) a set of rows in a Data Extension by its external key.

Parameters:

NameTypeRequiredDescription
dEExternalKeystringYesExternal key of the Data Extension.
payloadDataExtensionRowSetYesArray of row objects with keys and values.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: DataExtensionRowSet|error

Sample code:

mc:DataExtensionRowSet result = check mcClient->upsertDERowSetByKey("DecSeasonal25", [
{
keys: {"id": "user-001"},
values: {
"SubscriberKey": "[email protected]",
"EmailAddress": "[email protected]"
}
}
]);

Sample response:

[{"keys": {"id": "user-001"}, "values": {"SubscriberKey": "[email protected]", "EmailAddress": "[email protected]"}}]
deleteDERowSetByKey

Deletes a set of rows from a Data Extension by its external key.

Parameters:

NameTypeRequiredDescription
dEExternalKeystringYesExternal key of the Data Extension.
payloadDataExtensionRowSetYesArray of row objects identifying rows to delete.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: DataExtensionRowSet|error

Sample code:

mc:DataExtensionRowSet deleted = check mcClient->deleteDERowSetByKey("DecSeasonal25", [
{
keys: {"id": "user-001"}
}
]);

Sample response:

[{"keys": {"id": "user-001"}, "values": {}}]
upsertDERowSetByKeyAsync

Asynchronously upserts a set of rows in a Data Extension by its external key.

Parameters:

NameTypeRequiredDescription
dEExternalKeystringYesExternal key of the Data Extension.
payloadDataExtensionRowSetYesArray of row objects with keys and values.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: error?

Sample code:

check mcClient->upsertDERowSetByKeyAsync("DecSeasonal25", [
{
keys: {"id": "user-002"},
values: {
"SubscriberKey": "[email protected]",
"EmailAddress": "[email protected]"
}
}
]);
deleteDERowSetByKeyAsync

Asynchronously deletes a set of rows from a Data Extension by its external key.

Parameters:

NameTypeRequiredDescription
dEExternalKeystringYesExternal key of the Data Extension.
payloadDataExtensionRowSetYesArray of row objects identifying rows to delete.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: error?

Sample code:

check mcClient->deleteDERowSetByKeyAsync("DecSeasonal25", [
{
keys: {"id": "user-002"}
}
]);

Contact management​

searchContactsByAttribute

Searches contacts by a specific attribute name.

Parameters:

NameTypeRequiredDescription
attributeNameContactAttributeNameYesThe attribute name to search by.
payloadContactAttributeFilterConditionYesFilter conditions for the search.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: SearchContactsByAttributeResponse|error

Sample code:

mc:SearchContactsByAttributeResponse contacts = check mcClient->searchContactsByAttribute("email", {
conditionSet: [{
condition: {
attribute: {
key: "Email Address"
},
operator: "Equals",
value: {items: ["[email protected]"]}
}
}]
});

Sample response:

{"items": [{"contactKey": "user-001", "values": {"Email Address": "[email protected]"}}]}
searchContactsByEmail

Searches contacts by email address.

Parameters:

NameTypeRequiredDescription
payloadSearchContactsByEmailRequestYesRequest containing email addresses to search.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: SearchContactsByEmailResponse|error

Sample code:

mc:SearchContactsByEmailResponse results = check mcClient->searchContactsByEmail({
emailAddresses: ["[email protected]"]
});

Sample response:

{"items": [{"contactKey": "user-001", "emailAddress": "[email protected]", "status": "Active"}]}
createContact

Creates a new contact.

Parameters:

NameTypeRequiredDescription
payloadUpsertContactRequestYesContact details to create.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: UpsertContactResponse|error

Sample code:

mc:UpsertContactResponse res = check mcClient->createContact({
contactKey: "user-003",
attributeSets: []
});

Sample response:

{"contactKey": "user-003", "operationStatus": "Created"}
updateContact

Updates an existing contact.

Parameters:

NameTypeRequiredDescription
payloadUpsertContactRequestYesUpdated contact details.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: UpsertContactResponse|error

Sample code:

mc:UpsertContactResponse res = check mcClient->updateContact({
contactKey: "user-003",
attributeSets: []
});

Sample response:

{"contactKey": "user-003", "operationStatus": "Updated"}
deleteContact

Submits a contact delete request.

Parameters:

NameTypeRequiredDescription
payloadContactDeleteRequestYesContact delete request payload.
headersmap<string|string[]>NoOptional HTTP headers.
queriesDeleteContactQueriesNoQuery parameters for the delete operation.

Returns: ContactDeleteResponse|error

Sample code:

mc:ContactDeleteResponse res = check mcClient->deleteContact({
contactKeys: ["user-003"]
});

Sample response:

{"requestId": "del-001", "status": "Accepted"}
getContactDeleteRequests

Retrieves details of contact delete requests.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetContactDeleteRequestsQueriesNoQuery parameters for filtering.

Returns: ContactDeleteRequestsResponse|error

Sample code:

mc:ContactDeleteRequestsResponse requests = check mcClient->getContactDeleteRequests();

Sample response:

{"items": [{"requestId": "del-001", "status": "Completed", "completedDate": "2025-01-16T12:00:00Z"}]}

Contact preferences​

getContactPreferencesByKey

Retrieves contact preferences by contact key.

Parameters:

NameTypeRequiredDescription
contactKeystringYesThe contact key.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ContactPreferencesResponse|error

Sample code:

mc:ContactPreferencesResponse prefs = check mcClient->getContactPreferencesByKey("user-001");

Sample response:

{"contactKey": "user-001", "preferences": {"email": {"optedIn": true}, "sms": {"optedIn": false}}}
upsertContactPreferences

Creates or updates contact preferences.

Parameters:

NameTypeRequiredDescription
payloadContactPreferencesRequestYesPreference data to upsert.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: UpsertContactPreferencesResponse|error

Sample code:

mc:UpsertContactPreferencesResponse res = check mcClient->upsertContactPreferences({
contactKey: "user-001",
preferences: {}
});

Sample response:

{"contactKey": "user-001", "operationStatus": "Updated"}
searchContactPreferences

Searches contact preferences based on filter criteria.

Parameters:

NameTypeRequiredDescription
payloadSearchPreferencesRequestYesSearch criteria for preferences.
headersmap<string|string[]>NoOptional HTTP headers.
queriesSearchContactPreferencesQueriesNoQuery parameters for pagination.

Returns: SearchPreferencesResponse|error

Sample code:

mc:SearchPreferencesResponse results = check mcClient->searchContactPreferences({
contactKeyList: ["user-001", "user-002"]
});

Sample response:

{"items": [{"contactKey": "user-001", "preferences": {"email": {"optedIn": true}}}, {"contactKey": "user-002", "preferences": {"email": {"optedIn": false}}}]}

Asset management​

getAssets

Retrieves a list of content assets from Content Builder.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetAssetsQueriesNoQuery parameters for filtering and pagination.

Returns: AssetList|error

Sample code:

mc:AssetList assets = check mcClient->getAssets();

Sample response:

{"count": 1, "items": [{"id": 1001, "name": "hero-banner.png", "assetType": {"name": "png", "id": 28}, "category": {"id": 50, "name": "Images"}}]}
createAsset

Creates a new content asset in Content Builder.

Parameters:

NameTypeRequiredDescription
payloadUpsertAssetYesAsset details including name, type, category, and file data.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Asset|error

Sample code:

mc:Asset asset = check mcClient->createAsset({
name: "promo-image.png",
category: {"id": 50},
assetType: {"name": "png", "id": 28}
});

Sample response:

{"id": 1002, "name": "promo-image.png", "assetType": {"name": "png", "id": 28}, "category": {"id": 50, "name": "Images"}, "createdDate": "2025-01-15T10:00:00Z"}
updateAsset

Updates an existing content asset by its ID.

Parameters:

NameTypeRequiredDescription
idintYesID of the content asset.
payloadUpsertAssetYesUpdated asset details.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Asset|error

Sample code:

mc:Asset updated = check mcClient->updateAsset(1002, {
name: "promo-image-v2.png",
category: {"id": 50},
assetType: {"name": "png", "id": 28}
});

Sample response:

{"id": 1002, "name": "promo-image-v2.png", "assetType": {"name": "png", "id": 28}, "category": {"id": 50, "name": "Images"}}
deleteAsset

Deletes a content asset by its ID.

Parameters:

NameTypeRequiredDescription
idintYesID of the content asset to delete.
headersmap<string|string[]>NoOptional HTTP headers.
queriesDeleteAssetQueriesNoQuery parameters for the delete operation.

Returns: error?

Sample code:

check mcClient->deleteAsset(1002);

Category management​

getCategories

Retrieves a list of content categories from Content Builder.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetCategoriesQueriesNoQuery parameters for filtering and pagination.

Returns: CategoryList|error

Sample code:

mc:CategoryList categories = check mcClient->getCategories();

Sample response:

{"count": 2, "items": [{"id": 50, "name": "Images", "parentId": 0}, {"id": 51, "name": "Templates", "parentId": 0}]}
createCategory

Creates a new content category in Content Builder.

Parameters:

NameTypeRequiredDescription
payloadCreateCategoryYesCategory details.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: Category|error

Sample code:

mc:Category category = check mcClient->createCategory({
name: "Campaign Assets",
parentId: 0
});

Sample response:

{"id": 52, "name": "Campaign Assets", "parentId": 0}

Email messaging​

getEmailDefinitions

Retrieves a list of email definitions.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP headers.
queriesGetEmailDefinitionsQueriesNoQuery parameters for filtering and pagination.

Returns: EmailDefinitionList|error

Sample code:

mc:EmailDefinitionList emailDefs = check mcClient->getEmailDefinitions();

Sample response:

{"count": 1, "definitions": [{"definitionKey": "welcome-email", "name": "Welcome Email", "status": "Active"}]}
createEmailDefinition

Creates a new email definition for transactional messaging.

Parameters:

NameTypeRequiredDescription
payloadCreateEmailDefinitionYesEmail definition details.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: EmailDefinition|error

Sample code:

mc:EmailDefinition emailDef = check mcClient->createEmailDefinition({
name: "Order Confirmation",
definitionKey: "order-confirmation",
content: {
customerKey: "order-confirm-content"
}
});

Sample response:

{"definitionKey": "order-confirmation", "name": "Order Confirmation", "status": "Active", "createdDate": "2025-01-15T10:00:00Z"}
sendEmailMessage

Sends a transactional email message using an email definition.

Parameters:

NameTypeRequiredDescription
payloadSendEmailMessageRequestYesEmail send request with recipient and definition key.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: SendEmailMessageResponse|error

Sample code:

mc:SendEmailMessageResponse res = check mcClient->sendEmailMessage({
definitionKey: "order-confirmation",
recipient: {
contactKey: "[email protected]",
to: "[email protected]"
}
});

Sample response:

{"requestId": "msg-001", "responses": [{"messageKey": "mk-001", "status": "Accepted"}]}

Bulk data operations​

importDataExtensionAsync

Submits an asynchronous import request for a Data Extension file.

Parameters:

NameTypeRequiredDescription
payloadImportRequestYesImport request details including file location and Data Extension key.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ImportResponse|error

Sample code:

mc:ImportResponse res = check mcClient->importDataExtensionAsync({
dataExtensionKey: "DecSeasonal25",
fileName: "contacts.csv"
});

Sample response:

{"importId": 12345, "status": "Accepted", "message": "Import request accepted for processing"}
getImportSummary

Retrieves the summary of a Data Extension import operation.

Parameters:

NameTypeRequiredDescription
idintYesThe unique identifier for the import operation.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: ImportSummaryResponse|error

Sample code:

mc:ImportSummaryResponse summary = check mcClient->getImportSummary(12345);

Sample response:

{"importId": 12345, "status": "Completed", "totalRows": 500, "importedRows": 498, "skippedRows": 2}
createBulkIngestJob

Creates a bulk ingest job to insert rows into a Data Extension.

Parameters:

NameTypeRequiredDescription
payloadCreateBulkIngestJobYesBulk ingest job configuration.
headersmap<string|string[]>NoOptional HTTP headers.

Returns: CreateBulkIngestJobResponse|error

Sample code:

mc:CreateBulkIngestJobResponse job = check mcClient->createBulkIngestJob({
dataExtensionKey: "DecSeasonal25"
});

Sample response:

{"jobId": "bulk-001", "status": "Created", "dataExtensionKey": "DecSeasonal25"}