Skip to main content

What this page is: Step by step from an Account API key to a proven first call to the Marketing Communications Block API (lists, templates, campaigns).

How far to trust this page: the build checked 0 names, paths, tools, scopes and error codes against the real product (0 do not match). Not yet reviewed claim by claim.

Updated 2026-10-22 15:05 UTCRecently updated pages

Connect to the Marketing Communications Block API

What you are looking at: the shortest path to a working first call to the Marketing Communications Block API, which manages workspaces, lists, subscribers, templates and campaigns. Marketing Motor Blocks have no SMTP login or API key of their own; this API, authenticated with an Account API key, is how you use them.

1. Create an Account API key​

In the dashboard open Settings → API Access, find Account API Keys and choose Create API Key. Copy the full ak_live_… value when it is shown.

export MOTORICAL_API_KEY="ak_live_YOUR_KEY"

2. Find your workspace ID​

A workspace (also called a tenant) holds your lists and campaigns. This call needs only the key:

curl -sS "https://api.motorical.com/api/comm/tenant" \
-H "Authorization: ApiKey $MOTORICAL_API_KEY" | jq .

Copy data.tenantId, or pick an id from data.workspaces:

export COMM_TENANT_ID="YOUR_WORKSPACE_ID"

You can also copy it in the dashboard under Comm → Workspaces.

3. Prove it works​

curl -sS "https://motorical.com/comm-api/api/lists" \
-H "Authorization: ApiKey $MOTORICAL_API_KEY" \
-H "X-Tenant-Id: $COMM_TENANT_ID" \
-H "Accept: application/json" | jq .

You are connected when the response has "success": true. An empty list is fine: it means you have none yet.

If it does not work​

You seeMeaning
400 Missing X-Tenant-IdAdd the workspace header.
401The key is wrong, masked, or not an Account API key.
403The workspace ID does not belong to this account.

4. Move on​

All Marketing Communications Block API calls​

These 87 calls are generated from the API definition at build time. Type in the box to filter.

MethodEndpointWhat it does
GET/api/comm/tenantDiscover or provision Communications workspaces
GET/comm-api/api/analytics/overviewGet Communications analytics overview
GET/comm-api/api/campaignsList campaigns
POST/comm-api/api/campaignsCreate a campaign
DELETE/comm-api/api/campaigns/cleanupCleanup deleted campaigns
GET/comm-api/api/campaigns/deletedList deleted campaigns
GET/comm-api/api/campaigns/{id}Get campaign details
DELETE/comm-api/api/campaigns/{id}Delete a campaign
GET/comm-api/api/campaigns/{id}/analyticsGet campaign analytics
POST/comm-api/api/campaigns/{id}/cancelCancel a campaign
GET/comm-api/api/campaigns/{id}/click-breakdownGet click breakdown
GET/comm-api/api/campaigns/{id}/clicksList campaign clicks
POST/comm-api/api/campaigns/{id}/compileCompile campaign content and audience
GET/comm-api/api/campaigns/{id}/eventsList campaign events
DELETE/comm-api/api/campaigns/{id}/permanentPermanently delete a campaign
GET/comm-api/api/campaigns/{id}/recipient-consentGet campaign recipient consent status
GET/comm-api/api/campaigns/{id}/recipientsList campaign recipients
PATCH/comm-api/api/campaigns/{id}/restoreRestore a campaign
POST/comm-api/api/campaigns/{id}/scheduleSchedule a campaign
PATCH/comm-api/api/campaigns/{id}/settingsUpdate campaign settings
GET/comm-api/api/campaigns/{id}/statsGet campaign stats
GET/comm-api/api/consent-eventsList consent events
GET/comm-api/api/consent-events/analyticsGet consent-event analytics
POST/comm-api/api/contacts/upsertCreate or update a contact
DELETE/comm-api/api/contacts/{id}Delete a contact
PUT/comm-api/api/contacts/{id}/resubscribeResubscribe a contact
POST/comm-api/api/contacts/{id}/unsubscribeUnsubscribe a contact
GET/comm-api/api/gdpr/exportExport GDPR data
GET/comm-api/api/healthCommunications API health
GET/comm-api/api/listsList contact lists
POST/comm-api/api/listsCreate a contact list
DELETE/comm-api/api/listsBulk delete contact lists
POST/comm-api/api/lists/from-filterCreate a smart list from filters
PATCH/comm-api/api/lists/{id}Update a contact list
DELETE/comm-api/api/lists/{id}Delete a contact list
GET/comm-api/api/lists/{id}/contactsList contacts in a list
POST/comm-api/api/lists/{id}/contactsAdd contacts to a list
GET/comm-api/api/lists/{id}/contacts/exportExport list contacts
POST/comm-api/api/lists/{id}/contacts/importImport list contacts from CSV
DELETE/comm-api/api/lists/{id}/contacts/{contactId}Remove a contact from a list
GET/comm-api/api/recipientsSearch recipients
POST/comm-api/api/recipients/bulk-deleteBulk delete recipients
POST/comm-api/api/recipients/bulk-delete-by-filterBulk delete recipients matching a filter
POST/comm-api/api/recipients/bulk-moveBulk move recipients
GET/comm-api/api/recipients/campaignsList recipient campaign groupings
DELETE/comm-api/api/recipients/cleanupCleanup deleted recipients
GET/comm-api/api/recipients/deletedList deleted recipients
POST/comm-api/api/recipients/exportExport recipients
GET/comm-api/api/recipients/facetsList recipient filter facets
POST/comm-api/api/recipients/filterFilter recipients
POST/comm-api/api/recipients/restoreRestore recipients
DELETE/comm-api/api/recipients/{id}/permanentPermanently delete a recipient
PATCH/comm-api/api/recipients/{id}/restoreRestore a recipient
GET/comm-api/api/settings/consentGet current workspace consent settings
PATCH/comm-api/api/settings/consentUpdate current workspace consent settings
GET/comm-api/api/settings/open-trackingGet current workspace open-tracking settings
PATCH/comm-api/api/settings/open-trackingUpdate current workspace open-tracking settings
GET/comm-api/api/suppressionsList suppressions
POST/comm-api/api/suppressionsAdd a suppression
POST/comm-api/api/suppressions/bulkBulk import suppressions
POST/comm-api/api/suppressions/import-bouncesImport bounces into suppressions
GET/comm-api/api/suppressions/statsGet suppression stats
DELETE/comm-api/api/suppressions/{id}Remove a suppression
GET/comm-api/api/templatesList templates
POST/comm-api/api/templatesCreate a template
DELETE/comm-api/api/templatesBulk delete templates
POST/comm-api/api/templates/validateValidate a template without saving
GET/comm-api/api/templates/{id}Get a template
PATCH/comm-api/api/templates/{id}Update a template
DELETE/comm-api/api/templates/{id}Delete a template
GET/comm-api/api/tracking/eventsSearch tracking events
GET/comm-api/api/tracking/exportExport tracking events
GET/comm-api/api/tracking/statsGet tracking stats
GET/comm-api/api/unsubscribe-analyticsGet unsubscribe analytics
GET/comm-api/api/unsubscribe-eventsList unsubscribe events
GET/comm-api/api/unsubscribe-trendsGet unsubscribe trends
GET/comm-api/api/workspacesList Communications workspaces
POST/comm-api/api/workspacesCreate a Communications workspace
GET/comm-api/api/workspaces/current/motor-blocksList marketing Motor Blocks assigned to the workspace
PATCH/comm-api/api/workspaces/{id}Update a Communications workspace
GET/comm-api/api/workspaces/{id}/motor-blocksList Motor Blocks assigned to a workspace
PUT/comm-api/api/workspaces/{id}/motor-blocksReplace workspace Motor Block assignments
POST/comm-api/api/workspaces/{id}/motor-blocks/from-domainResolve a sending domain to a companion marketing Motor Block
GET/comm-api/api/workspaces/{id}/settings/consentGet workspace consent settings
PATCH/comm-api/api/workspaces/{id}/settings/consentUpdate workspace consent settings
GET/comm-api/api/workspaces/{id}/settings/open-trackingGet workspace open-tracking settings
PATCH/comm-api/api/workspaces/{id}/settings/open-trackingUpdate workspace open-tracking settings