openapi: 3.1.0 info: title: Salesforce Marketing Cloud REST Assets Journeys API description: The Salesforce Marketing Cloud REST API provides programmatic access to Marketing Cloud features including contacts, journeys, and assets. The API uses JSON request and response bodies and OAuth 2.0 authentication via the Marketing Cloud authentication endpoint. All API requests require a valid access token obtained through the Server-to-Server OAuth flow. version: 1.0.0 termsOfService: https://www.salesforce.com/company/legal/ contact: name: Salesforce Marketing Cloud Support url: https://help.salesforce.com/s/ email: support@salesforce.com license: name: Salesforce Master Subscription Agreement url: https://www.salesforce.com/company/legal/agreements/ servers: - url: https://{subdomain}.rest.marketingcloudapis.com description: Marketing Cloud REST API endpoint variables: subdomain: default: YOUR_SUBDOMAIN description: Your Marketing Cloud tenant-specific subdomain (e.g., mc563885gzs27c5t9-63k636ttgm). Obtain this from Setup > Apps > Installed Packages in Marketing Cloud. security: - OAuth2: [] tags: - name: Journeys description: Create, manage, and automate customer journeys across multiple channels and touchpoints. Journeys define the automated workflows that guide customers through marketing interactions. externalDocs: description: Journey Builder API Documentation url: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/journey-builder-api-overview.html paths: /interaction/v1/interactions: get: operationId: listJourneys summary: Salesforce Marketing Cloud List Journeys description: Retrieves a collection of journeys. Supports pagination through page and pageSize parameters. Returns journey definitions including their current status, version, and configuration. tags: - Journeys parameters: - name: $page in: query description: Page number for pagination (1-based) schema: type: integer default: 1 minimum: 1 - name: $pageSize in: query description: Number of journeys per page schema: type: integer default: 50 minimum: 1 maximum: 200 - name: $orderBy in: query description: Field to sort results by (e.g., ModifiedDate DESC, Name ASC) schema: type: string - name: status in: query description: Filter journeys by status (Draft, Published, ScheduledToPublish, Stopped, Unpublished) schema: type: string enum: - Draft - Published - ScheduledToPublish - Stopped - Unpublished - name: nameOrDescription in: query description: Filter journeys by name or description (partial match) schema: type: string responses: '200': description: Journeys retrieved successfully content: application/json: schema: $ref: '#/components/schemas/JourneyCollection' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createJourney summary: Salesforce Marketing Cloud Create a Journey description: Creates a new journey in Marketing Cloud. The journey specification defines the entry event, activities, triggers, and overall workflow. Journeys are created in Draft status by default and must be published to become active. tags: - Journeys requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JourneyDefinition' example: name: Welcome Journey description: Onboarding journey for new subscribers key: welcome-journey-001 workflowApiVersion: 1.0 triggers: - key: event-trigger name: api-event type: APIEvent eventDefinitionKey: APIEvent-welcome activities: - key: send-welcome-email name: Send Welcome Email type: EMAILV2 configurationArguments: triggeredSend: emailId: 12345 responses: '201': description: Journey created successfully content: application/json: schema: $ref: '#/components/schemas/Journey' '400': description: Bad request - invalid journey specification content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /interaction/v1/interactions/{id}: get: operationId: getJourney summary: Salesforce Marketing Cloud Retrieve a Journey description: Retrieves a single journey by its unique identifier. Returns the complete journey specification including activities, triggers, goals, and exit criteria. tags: - Journeys parameters: - name: id in: path required: true description: Unique identifier (UUID) of the journey schema: type: string format: uuid - name: versionNumber in: query description: Specific version number to retrieve. If omitted, returns the latest version. schema: type: integer responses: '200': description: Journey retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Journey' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Journey not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: updateJourney summary: Salesforce Marketing Cloud Update a Journey description: Updates an existing journey. Only journeys in Draft status can be fully updated. Published journeys support limited modifications. Provide the complete journey specification including all activities and triggers. tags: - Journeys parameters: - name: id in: path required: true description: Unique identifier (UUID) of the journey schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JourneyDefinition' responses: '200': description: Journey updated successfully content: application/json: schema: $ref: '#/components/schemas/Journey' '400': description: Bad request - invalid journey specification content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Journey not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '409': description: Conflict - journey is in a non-editable state content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteJourney summary: Salesforce Marketing Cloud Delete a Journey description: Deletes a journey. Only journeys in Draft or Stopped status can be deleted. Published journeys must first be stopped before deletion. tags: - Journeys parameters: - name: id in: path required: true description: Unique identifier (UUID) of the journey schema: type: string format: uuid responses: '200': description: Journey deleted successfully '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Journey not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '409': description: Conflict - journey cannot be deleted in current state content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /interaction/v1/interactions/publishAsync/{id}: post: operationId: publishJourney summary: Salesforce Marketing Cloud Publish a Journey description: Publishes a journey asynchronously, activating it for customer entry. Once published, contacts matching the entry criteria begin entering the journey. The publish operation returns a statusId for tracking progress. tags: - Journeys parameters: - name: id in: path required: true description: Unique identifier (UUID) of the journey to publish schema: type: string format: uuid requestBody: required: false content: application/json: schema: type: object properties: versionNumber: type: integer description: Version number to publish responses: '202': description: Publish operation initiated content: application/json: schema: $ref: '#/components/schemas/PublishResponse' '400': description: Bad request - journey not in publishable state content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Journey not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /interaction/v1/interactions/stop/{id}: post: operationId: stopJourney summary: Salesforce Marketing Cloud Stop a Journey description: Stops a published journey. Contacts currently in the journey can either complete their current activity or be ejected immediately based on the stop configuration. tags: - Journeys parameters: - name: id in: path required: true description: Unique identifier (UUID) of the journey to stop schema: type: string format: uuid responses: '200': description: Journey stopped successfully content: application/json: schema: $ref: '#/components/schemas/Journey' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Journey not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '409': description: Conflict - journey is not in a stoppable state content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /interaction/v1/events: post: operationId: fireEntryEvent summary: Salesforce Marketing Cloud Fire a Journey Entry Event description: Fires an entry event to inject a contact into a journey. The contact is identified by ContactKey and enters the journey associated with the specified EventDefinitionKey. Additional data can be passed as part of the event payload. tags: - Journeys requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EntryEvent' example: ContactKey: example-contact-001 EventDefinitionKey: APIEvent-welcome Data: FirstName: Jane LastName: Smith EmailAddress: jane.smith@example.com responses: '201': description: Event fired successfully content: application/json: schema: $ref: '#/components/schemas/EntryEventResponse' '400': description: Bad request - invalid event data content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: Journey: type: object description: Represents a customer journey in Marketing Cloud. A journey defines an automated workflow that guides contacts through a series of marketing interactions across channels. properties: id: type: string format: uuid description: System-generated unique identifier for the journey example: abc123 key: type: string description: Customer-defined unique key for the journey example: example_value name: type: string description: Display name of the journey example: Example Title description: type: string description: Description of the journey purpose example: A sample description. version: type: integer description: Current version number of the journey example: 10 status: type: string description: Current status of the journey enum: - Draft - Published - ScheduledToPublish - Stopped - Unpublished example: Draft createdDate: type: string format: date-time example: '2026-01-15T10:30:00Z' modifiedDate: type: string format: date-time example: '2026-01-15T10:30:00Z' workflowApiVersion: type: number description: Version of the Journey Builder API used example: 42.5 triggers: type: array description: Entry triggers that inject contacts into the journey items: $ref: '#/components/schemas/JourneyTrigger' example: [] activities: type: array description: Activities that contacts pass through in the journey items: $ref: '#/components/schemas/JourneyActivity' example: [] goals: type: array description: Goal criteria that measure journey success items: $ref: '#/components/schemas/JourneyGoal' example: [] exits: type: array description: Exit criteria that remove contacts from the journey items: $ref: '#/components/schemas/JourneyExit' example: [] stats: type: object description: Runtime statistics for the journey properties: currentPopulation: type: integer description: Number of contacts currently in the journey cumulativePopulation: type: integer description: Total contacts that have entered the journey metGoal: type: integer description: Number of contacts that met the journey goal example: example_value EntryEvent: type: object description: Event payload used to inject a contact into a journey via the API event trigger. properties: ContactKey: type: string description: Unique identifier for the contact entering the journey example: example_value EventDefinitionKey: type: string description: Key of the event definition matching the journey entry trigger example: example_value Data: type: object description: Additional data to pass to the journey as key-value pairs. These values are available to activities within the journey. additionalProperties: true example: example_value required: - ContactKey - EventDefinitionKey JourneyActivity: type: object description: An activity within a journey. Activities represent the actions performed on contacts, such as sending emails, waiting, or making decisions. properties: key: type: string description: Unique key for the activity within the journey example: example_value name: type: string description: Display name of the activity example: Example Title type: type: string description: Type of activity enum: - EMAILV2 - SMSSYNC - PUSHNOTIFICATION - WAIT - RANDOM_SPLIT - ENGAGEMENT_SPLIT - DECISION_SPLIT - JOIN - DATAEXTENSIONUPDATE - REST - CUSTOM example: EMAILV2 configurationArguments: type: object description: Activity-specific configuration example: example_value outcomes: type: array description: Possible outcomes of the activity leading to next steps items: type: object properties: key: type: string next: type: string description: Key of the next activity in the journey example: [] required: - key - type JourneyExit: type: object description: Exit criteria that remove contacts from the journey properties: key: type: string example: example_value name: type: string example: Example Title criteria: type: string description: Criteria expression that triggers journey exit example: example_value PublishResponse: type: object description: Response returned when a journey publish operation is initiated properties: statusId: type: string description: Identifier for tracking the publish operation status example: '500123' message: type: string example: example_value ErrorResponse: type: object description: Standard error response returned by the Marketing Cloud API properties: message: type: string description: Human-readable error message example: example_value errorcode: type: integer description: Numeric error code example: 10 documentation: type: string description: URL to relevant documentation for this error example: example_value EntryEventResponse: type: object description: Response returned after firing a journey entry event properties: requestId: type: string description: Unique identifier for the event request example: '500123' eventInstanceId: type: string format: uuid description: Unique instance identifier for this event firing example: '500123' JourneyTrigger: type: object description: Entry trigger configuration for a journey. Defines how contacts enter the journey, such as via API event, scheduled automation, or audience. properties: key: type: string description: Unique key for the trigger within the journey example: example_value name: type: string description: Display name of the trigger example: Example Title type: type: string description: Type of trigger enum: - APIEvent - ScheduledAutomation - Event - ContactAudience example: APIEvent eventDefinitionKey: type: string description: Key of the event definition associated with this trigger, used for API events example: example_value configurationArguments: type: object description: Trigger-specific configuration example: example_value JourneyGoal: type: object description: Goal criteria for measuring journey success properties: key: type: string example: example_value name: type: string example: Example Title description: type: string example: A sample description. metCriteria: type: string description: Criteria expression that defines when the goal is met example: example_value JourneyDefinition: type: object description: Specification for creating or updating a journey properties: key: type: string description: Customer-defined unique key for the journey example: example_value name: type: string description: Display name of the journey example: Example Title description: type: string description: Description of the journey purpose example: A sample description. workflowApiVersion: type: number description: Version of the Journey Builder API (e.g., 1.0) example: 42.5 triggers: type: array items: $ref: '#/components/schemas/JourneyTrigger' example: [] activities: type: array items: $ref: '#/components/schemas/JourneyActivity' example: [] goals: type: array items: $ref: '#/components/schemas/JourneyGoal' example: [] exits: type: array items: $ref: '#/components/schemas/JourneyExit' example: [] required: - name - workflowApiVersion JourneyCollection: type: object description: Paginated collection of journeys properties: count: type: integer description: Total number of journeys matching the query example: 10 page: type: integer description: Current page number example: 10 pageSize: type: integer description: Number of items per page example: 10 items: type: array items: $ref: '#/components/schemas/Journey' example: [] securitySchemes: OAuth2: type: oauth2 description: Marketing Cloud uses OAuth 2.0 client credentials flow for authentication. Obtain a client ID and secret from an installed package in Marketing Cloud Setup, then exchange them for an access token at the authentication endpoint. flows: clientCredentials: tokenUrl: https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com/v2/token scopes: {}