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"}