openapi: 3.1.0 info: title: Adobe Campaign Standard API description: >- REST API for Adobe Campaign Standard enabling integration with marketing campaigns, profiles, workflows, and messaging services. Provides CRUD operations for profiles and services, workflow control, transactional messaging triggers, GDPR/CCPA privacy requests, marketing history access, and custom resource management. version: 1.0.0 contact: name: Adobe Developer Support url: https://developer.adobe.com/ license: name: Proprietary url: https://www.adobe.com/legal/terms.html x-logo: url: https://www.adobe.com/content/dam/cc/icons/adobe-campaign.svg externalDocs: description: Adobe Campaign Standard API Documentation url: >- https://experienceleague.adobe.com/docs/campaign-standard/using/working-with-apis/get-started-apis.html servers: - url: https://mc.adobe.io/{ORGANIZATION}/campaign description: Adobe Campaign Standard Production variables: ORGANIZATION: description: Your Adobe IMS Organization ID default: YOUR_ORG_ID tags: - name: Custom Resources description: >- Access custom resources defined in Campaign Standard, both profile-linked and standalone. - name: Marketing History description: >- Retrieve marketing event history for profiles including delivery logs and mirror page links. - name: Metadata description: >- Discover resource schemas, fields, filters, and data policies for Campaign Standard resources. - name: Organizational Units description: >- Retrieve organizational unit structures used for access control and data partitioning. - name: Privacy description: >- Create GDPR and CCPA privacy access and deletion requests for data subject compliance. - name: Profiles description: >- Manage recipient profiles including creation, retrieval, update, and deletion of contact records. - name: Subscriptions description: >- Subscribe and unsubscribe profiles to and from services. - name: Transactional Messages description: >- Trigger and monitor transactional messages across email, SMS, and push notification channels. - name: Workflows description: >- Control workflow execution including starting, pausing, resuming, and stopping marketing workflows. paths: /profileAndServices/profile: get: operationId: listProfiles summary: Adobe Campaign List Profiles description: >- Retrieves a paginated list of recipient profiles. Supports filtering, sorting, and pagination through query parameters. tags: - Profiles parameters: - $ref: '#/components/parameters/LineCount' - $ref: '#/components/parameters/LineStart' - $ref: '#/components/parameters/Order' - $ref: '#/components/parameters/ForcePagination' responses: '200': description: List of profiles retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/PaginatedProfileResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createProfile summary: Adobe Campaign Create a Profile description: >- Creates a new recipient profile with the provided attributes. tags: - Profiles requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProfileCreate' responses: '201': description: Profile created successfully. content: application/json: schema: $ref: '#/components/schemas/Profile' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/profile/{PKEY}: get: operationId: getProfile summary: Adobe Campaign Get a Profile description: >- Retrieves a specific recipient profile by its PKEY identifier. tags: - Profiles parameters: - $ref: '#/components/parameters/PKEY' responses: '200': description: Profile retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/Profile' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateProfile summary: Adobe Campaign Update a Profile description: >- Partially updates a recipient profile with the provided attributes. tags: - Profiles parameters: - $ref: '#/components/parameters/PKEY' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProfileUpdate' responses: '200': description: Profile updated successfully. content: application/json: schema: $ref: '#/components/schemas/Profile' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteProfile summary: Adobe Campaign Delete a Profile description: >- Deletes a specific recipient profile by its PKEY identifier. tags: - Profiles parameters: - $ref: '#/components/parameters/PKEY' responses: '200': description: Profile deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/service: get: operationId: listServices summary: Adobe Campaign List Services description: >- Retrieves a paginated list of subscription services. tags: [] parameters: - $ref: '#/components/parameters/LineCount' - $ref: '#/components/parameters/LineStart' - $ref: '#/components/parameters/Order' responses: '200': description: List of services retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/PaginatedServiceResponse' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createService summary: Adobe Campaign Create a Service description: >- Creates a new subscription service. tags: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ServiceCreate' responses: '201': description: Service created successfully. content: application/json: schema: $ref: '#/components/schemas/Service' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/service/{PKEY}: get: operationId: getService summary: Adobe Campaign Get a Service description: >- Retrieves a specific subscription service by its PKEY identifier. tags: [] parameters: - $ref: '#/components/parameters/PKEY' responses: '200': description: Service retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/Service' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateService summary: Adobe Campaign Update a Service description: >- Partially updates a subscription service with the provided attributes. tags: [] parameters: - $ref: '#/components/parameters/PKEY' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ServiceUpdate' responses: '200': description: Service updated successfully. content: application/json: schema: $ref: '#/components/schemas/Service' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteService summary: Adobe Campaign Delete a Service description: >- Deletes a specific subscription service by its PKEY identifier. tags: [] parameters: - $ref: '#/components/parameters/PKEY' responses: '200': description: Service deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/profile/{PKEY}/subscriptions: post: operationId: subscribeProfile summary: Adobe Campaign Subscribe a Profile to a Service description: >- Subscribes a profile to a subscription service by providing the service PKEY in the request body. tags: - Subscriptions parameters: - $ref: '#/components/parameters/PKEY' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SubscriptionRequest' responses: '201': description: Profile subscribed successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/service/{servicePKEY}/subscriptions/{profilePKEY}: delete: operationId: unsubscribeProfile summary: Adobe Campaign Unsubscribe a Profile from a Service description: >- Removes a profile subscription from a service. tags: - Subscriptions parameters: - name: servicePKEY in: path required: true description: The PKEY of the service. schema: type: string example: example_value - name: profilePKEY in: path required: true description: The PKEY of the profile to unsubscribe. schema: type: string example: example_value responses: '200': description: Profile unsubscribed successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /workflow/execution/{workflowID}/commands: post: operationId: controlWorkflow summary: Adobe Campaign Control a Workflow description: >- Sends a control command to a workflow. Supported commands are start, pause, resume, and stop. Commands are executed asynchronously. tags: - Workflows parameters: - name: workflowID in: path required: true description: The ID of the workflow to control. schema: type: string example: CAM123456 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WorkflowCommand' responses: '200': description: Workflow command accepted successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /{transactionalAPI}/{eventID}: post: operationId: triggerTransactionalEvent summary: Adobe Campaign Trigger a Transactional Event description: >- Sends a transactional event to trigger a personalized message. The transactionalAPI path segment corresponds to the event configuration name. Events are processed asynchronously and support email, SMS, and push notification channels. tags: - Transactional Messages parameters: - name: transactionalAPI in: path required: true description: >- The transactional API name corresponding to the event configuration (e.g., EVTorderConfirmation). schema: type: string example: example_value - name: eventID in: path required: true description: The unique event type identifier. schema: type: string example: CAM123456 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionalEvent' responses: '200': description: Transactional event accepted for processing. content: application/json: schema: $ref: '#/components/schemas/TransactionalEventResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: getTransactionalEventStatus summary: Adobe Campaign Get Transactional Event Status description: >- Retrieves the current processing status of a previously triggered transactional event. Statuses include pending, processing, processed, deliveryFailed, routingFailed, targetingFailed, tooOld, and ignored. tags: - Transactional Messages parameters: - name: transactionalAPI in: path required: true description: The transactional API name. schema: type: string example: example_value - name: eventID in: path required: true description: The unique event type identifier. schema: type: string example: CAM123456 responses: '200': description: Event status retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/TransactionalEventStatus' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /privacy/privacyTool: post: operationId: createPrivacyRequest summary: Adobe Campaign Create a Privacy Request description: >- Creates a GDPR or CCPA privacy request for data access or deletion. Supports both access requests (retrieve all data for a data subject) and delete requests (remove all data for a data subject). tags: - Privacy requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PrivacyRequest' responses: '201': description: Privacy request created successfully. content: application/json: schema: $ref: '#/components/schemas/PrivacyRequestResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/history/{PKEY}: get: operationId: getMarketingHistory summary: Adobe Campaign Get Marketing History for a Profile description: >- Retrieves the marketing event history for a specific profile, including delivery logs and mirror page links. tags: - Marketing History parameters: - $ref: '#/components/parameters/PKEY' responses: '200': description: Marketing history retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/MarketingHistory' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServicesExt/orgUnitBase: get: operationId: listOrgUnits summary: Adobe Campaign List Organizational Units description: >- Retrieves the list of organizational units used for access control and data partitioning. tags: - Organizational Units parameters: - $ref: '#/components/parameters/LineCount' - $ref: '#/components/parameters/LineStart' responses: '200': description: Organizational units retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/PaginatedOrgUnitResponse' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServicesExt/{cusResourceName}: get: operationId: listProfileLinkedCustomResources summary: Adobe Campaign List Profile-linked Custom Resources description: >- Retrieves records from a profile-linked custom resource. Custom resources are defined with the cus prefix in Campaign Standard. tags: - Custom Resources parameters: - name: cusResourceName in: path required: true description: >- The name of the custom resource (with cus prefix, e.g., cusMyResource). schema: type: string example: Example Campaign - $ref: '#/components/parameters/LineCount' - $ref: '#/components/parameters/LineStart' - $ref: '#/components/parameters/Order' responses: '200': description: Custom resource records retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/PaginatedResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /customResources/{cusResourceName}: get: operationId: listCustomResources summary: Adobe Campaign List Non-profile Custom Resources description: >- Retrieves records from a standalone custom resource not linked to profiles. tags: - Custom Resources parameters: - name: cusResourceName in: path required: true description: The name of the custom resource. schema: type: string example: Example Campaign - $ref: '#/components/parameters/LineCount' - $ref: '#/components/parameters/LineStart' - $ref: '#/components/parameters/Order' responses: '200': description: Custom resource records retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/PaginatedResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /profileAndServices/resourceType/{resourceName}: get: operationId: getResourceMetadata summary: Adobe Campaign Get Resource Metadata description: >- Retrieves metadata for a Campaign Standard resource, including field definitions, data types, available filters, and data policies. tags: - Metadata parameters: - name: resourceName in: path required: true description: The name of the resource to describe. schema: type: string example: Example Campaign responses: '200': description: Resource metadata retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceMetadata' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: >- OAuth Server-to-Server access token obtained from Adobe IMS at https://ims-na1.adobelogin.com/ims/token/v3 ApiKeyAuth: type: apiKey in: header name: X-Api-Key description: >- Your Adobe Developer Console API Key (Client ID). parameters: PKEY: name: PKEY in: path required: true description: The unique PKEY identifier of the resource. schema: type: string LineCount: name: _lineCount in: query required: false description: Number of records to return per page. Default is 25. schema: type: integer default: 25 LineStart: name: _lineStart in: query required: false description: Pagination offset from the next node in previous response. schema: type: integer Order: name: _order in: query required: false description: >- Sort order. Use field name for ascending, append %20desc for descending (e.g., email%20desc). schema: type: string ForcePagination: name: _forcePagination in: query required: false description: >- Force pagination for tables with more than 100,000 records. schema: type: boolean default: false schemas: Profile: type: object properties: PKey: type: string description: Unique identifier for the profile. readOnly: true example: example_value email: type: string format: email description: Email address of the profile. example: user@example.com firstName: type: string description: First name of the profile. example: Example Campaign lastName: type: string description: Last name of the profile. example: Example Campaign phone: type: string description: Phone number of the profile. example: example_value mobilePhone: type: string description: Mobile phone number. example: example_value birthDate: type: string format: date description: Date of birth. example: '2026-04-17T12:00:00Z' gender: type: string enum: - male - female - unknown description: Gender of the profile. example: male preferredLanguage: type: string description: Preferred language code. example: example_value blackList: type: boolean description: Whether the profile is on the deny list. example: true blackListEmail: type: boolean description: Whether email is blocked for this profile. example: true blackListMobile: type: boolean description: Whether SMS is blocked for this profile. example: true created: type: string format: date-time description: Profile creation timestamp. readOnly: true example: example_value lastModified: type: string format: date-time description: Last modification timestamp. readOnly: true example: example_value subscriptions: type: object description: Link to the profile subscriptions. readOnly: true properties: href: type: string ProfileCreate: type: object required: - email properties: email: type: string format: email description: Email address for the new profile. example: user@example.com firstName: type: string example: Example Campaign lastName: type: string example: Example Campaign phone: type: string example: example_value mobilePhone: type: string example: example_value birthDate: type: string format: date example: '2026-04-17T12:00:00Z' gender: type: string enum: - male - female - unknown example: male preferredLanguage: type: string example: example_value ProfileUpdate: type: object properties: email: type: string format: email example: user@example.com firstName: type: string example: Example Campaign lastName: type: string example: Example Campaign phone: type: string example: example_value mobilePhone: type: string example: example_value birthDate: type: string format: date example: '2026-04-17T12:00:00Z' gender: type: string enum: - male - female - unknown example: male preferredLanguage: type: string example: example_value blackList: type: boolean example: true blackListEmail: type: boolean example: true blackListMobile: type: boolean example: true Service: type: object properties: PKey: type: string description: Unique identifier for the service. readOnly: true example: example_value name: type: string description: Internal name of the service. example: Example Campaign label: type: string description: Display label of the service. example: Example Campaign messageType: type: string enum: - email - sms - push description: Default channel for the service. example: email start: type: string format: date-time description: Service start date. example: example_value end: type: string format: date-time description: Service end date. example: example_value created: type: string format: date-time readOnly: true example: example_value lastModified: type: string format: date-time readOnly: true example: example_value ServiceCreate: type: object required: - label properties: name: type: string example: Example Campaign label: type: string example: Example Campaign messageType: type: string enum: - email - sms - push example: email ServiceUpdate: type: object properties: label: type: string example: Example Campaign messageType: type: string enum: - email - sms - push example: email start: type: string format: date-time example: example_value end: type: string format: date-time example: example_value SubscriptionRequest: type: object required: - service properties: service: type: object properties: PKey: type: string description: The PKEY of the service to subscribe to. WorkflowCommand: type: object required: - method properties: method: type: string enum: - start - pause - resume - stop description: The workflow control command to execute. example: start TransactionalEvent: type: object properties: email: type: string format: email description: Recipient email address (for email channel). example: user@example.com mobilePhone: type: string description: Recipient mobile phone (for SMS channel). example: example_value pushPlatform: type: string enum: - apns - gcm description: Push platform (Apple or Google). example: apns ctx: type: object description: >- Context data for message personalization. Contains dynamic fields matching the transactional message template. additionalProperties: true scheduled: type: string format: date-time description: Optional scheduled send time. example: example_value expiration: type: string format: date-time description: Optional event expiration time. example: example_value TransactionalEventResponse: type: object properties: PKey: type: string description: The PKEY of the created event. example: example_value eventId: type: string description: Unique identifier of the event. example: CAM123456 status: type: string enum: - pending description: Initial status of the event. example: pending TransactionalEventStatus: type: object properties: PKey: type: string description: The PKEY of the event. example: example_value eventId: type: string description: Unique identifier of the event. example: CAM123456 status: type: string enum: - pending - processing - paused - processed - ignored - deliveryFailed - routingFailed - targetingFailed - tooOld description: Current processing status of the event. example: pending reason: type: string description: Failure reason if the event was not processed. example: example_value PrivacyRequest: type: object required: - name - namespaceName - reconciliationValue - regulation - type properties: name: type: string description: Name identifying the privacy request. example: Example Campaign namespaceName: type: string description: >- The namespace name used to identify the data subject (e.g., email, phone). example: Example Campaign reconciliationValue: type: string description: >- The value used to look up the data subject in the specified namespace (e.g., the email address). example: example_value regulation: type: string enum: - gdpr - ccpa description: The privacy regulation for the request. example: gdpr type: type: string enum: - access - delete description: Whether to access or delete the data subject data. example: access PrivacyRequestResponse: type: object properties: PKey: type: string description: The PKEY of the created privacy request. example: example_value status: type: string description: Current status of the privacy request. example: active MarketingHistory: type: object properties: PKey: type: string description: Profile PKEY. example: example_value events: type: array items: type: object properties: eventDate: type: string format: date-time description: Date of the marketing event. channel: type: string description: Channel of the delivery (email, sms, push). deliveryLabel: type: string description: Label of the delivery. mirrorPage: type: object properties: href: type: string format: uri description: Link to the mirror page. OrgUnit: type: object properties: PKey: type: string description: Unique identifier for the organizational unit. example: example_value name: type: string description: Internal name of the organizational unit. example: Example Campaign label: type: string description: Display label of the organizational unit. example: Example Campaign parentTitle: type: string description: Label of the parent organizational unit. example: example_value ResourceMetadata: type: object properties: name: type: string description: The resource name. example: Example Campaign fields: type: array description: List of fields in the resource. items: type: object properties: name: type: string description: Field name. type: type: string description: Data type of the field. label: type: string description: Display label of the field. filters: type: array description: Available filters for the resource. items: type: object properties: name: type: string parameters: type: array items: type: string PaginatedResponse: type: object properties: content: type: array items: type: object count: type: object properties: href: type: string description: URL to get the total count. next: type: object properties: href: type: string description: URL for the next page of results. PaginatedProfileResponse: allOf: - $ref: '#/components/schemas/PaginatedResponse' - type: object properties: content: type: array items: $ref: '#/components/schemas/Profile' PaginatedServiceResponse: allOf: - $ref: '#/components/schemas/PaginatedResponse' - type: object properties: content: type: array items: $ref: '#/components/schemas/Service' PaginatedOrgUnitResponse: allOf: - $ref: '#/components/schemas/PaginatedResponse' - type: object properties: content: type: array items: $ref: '#/components/schemas/OrgUnit' ErrorResponse: type: object properties: error_code: type: string description: Numeric error code. example: example_value message: type: string description: Human-readable error message. example: example_value responses: BadRequest: description: Invalid request parameters. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Authentication failed. Invalid or expired OAuth token. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: Insufficient permissions for the requested operation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' InternalError: description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - BearerAuth: [] ApiKeyAuth: []