openapi: 3.1.0 info: title: Adobe Experience Platform Data Collection API description: >- The Data Collection APIs provide endpoints for sending data directly to the Adobe Experience Platform Edge Network. The Edge Network API supports both authenticated and non-authenticated data ingestion, while the Media Edge API enables media tracking data transmission. These APIs allow real-time data collection from web, mobile, and IoT devices. version: 2.0.0 contact: name: Adobe Developer Support url: https://experienceleague.adobe.com/?support-solution=Experience+Platform license: name: Adobe Terms of Service url: https://www.adobe.com/legal/terms.html termsOfService: https://www.adobe.com/legal/terms.html servers: - url: https://edge.adobedc.net description: Adobe Edge Network Non-Authenticated Server - url: https://server.adobedc.net description: Adobe Edge Network Authenticated Server paths: /ee/v2/interact: post: operationId: interact summary: Send Interactive Event description: >- Send a single event to the Adobe Experience Platform Edge Network and receive a response with personalization decisions, identity stitching, and other real-time results. This endpoint does not support batch events; use the collect endpoint for multiple events. tags: - Edge Network API parameters: - $ref: '#/components/parameters/datastreamId' - $ref: '#/components/parameters/requestId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InteractRequest' examples: InteractRequestExample: summary: Default interact request x-microcks-default: true value: event: xdm: identityMap: example_value eventType: example_value web: {} commerce: {} timestamp: '2026-01-15T10:30:00Z' data: example_value responses: '200': description: >- Successful response with personalization decisions and service responses. content: application/json: schema: $ref: '#/components/schemas/InteractResponse' examples: Interact200Example: summary: Default interact 200 response x-microcks-default: true value: requestId: '500123' handle: - type: example_value payload: - {} eventIndex: 10 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '408': $ref: '#/components/responses/RequestTimeout' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - {} - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/v2/collect: post: operationId: collect summary: Send Batch Events description: >- Send one or more events to the Adobe Experience Platform Edge Network for non-interactive data collection. Supports batch processing of multiple events in a single request. Use the silent query parameter to receive a 204 response with no payload. tags: - Edge Network API parameters: - $ref: '#/components/parameters/datastreamId' - $ref: '#/components/parameters/requestId' - name: silent in: query schema: type: boolean description: >- When true, returns 204 No Content with an empty payload instead of the standard response. example: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CollectRequest' examples: CollectRequestExample: summary: Default collect request x-microcks-default: true value: events: - data: example_value responses: '202': description: Events accepted for processing. content: application/json: schema: $ref: '#/components/schemas/CollectResponse' examples: Collect202Example: summary: Default collect 202 response x-microcks-default: true value: requestId: '500123' '204': description: Events accepted (silent mode). No response body. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '408': $ref: '#/components/responses/RequestTimeout' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - {} - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/sessionStart: post: operationId: mediaSessionStart summary: Start a Media Session description: >- Create a new media tracking session. This endpoint initializes a media session and returns a session ID for subsequent media tracking events. Requires the Streaming Media Collection Add-on. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaSessionStartRequest' examples: MediasessionstartRequestExample: summary: Default mediaSessionStart request x-microcks-default: true value: events: - xdm: eventType: media.sessionStart mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '200': description: Media session started successfully. content: application/json: schema: $ref: '#/components/schemas/MediaSessionStartResponse' examples: Mediasessionstart200Example: summary: Default mediaSessionStart 200 response x-microcks-default: true value: requestId: '500123' handle: - type: example_value payload: - {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/play: post: operationId: mediaPlay summary: Track Media Play Event description: Send a play event for an active media tracking session. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediaplayRequestExample: summary: Default mediaPlay request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Play event tracked successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/ping: post: operationId: mediaPing summary: Track Media Ping Event description: >- Send a periodic ping event to maintain an active media session. Should be sent every 10 seconds during playback. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediapingRequestExample: summary: Default mediaPing request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Ping event tracked successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/pauseStart: post: operationId: mediaPauseStart summary: Track Media Pause Event description: Send a pause start event for an active media tracking session. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediapausestartRequestExample: summary: Default mediaPauseStart request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Pause event tracked successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/bufferStart: post: operationId: mediaBufferStart summary: Track Media Buffer Start Event description: Send a buffer start event for an active media tracking session. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediabufferstartRequestExample: summary: Default mediaBufferStart request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Buffer start event tracked successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/bitrateChange: post: operationId: mediaBitrateChange summary: Track Media Bitrate Change Event description: Send a bitrate change event for an active media tracking session. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediabitratechangeRequestExample: summary: Default mediaBitrateChange request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Bitrate change event tracked successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/error: post: operationId: mediaError summary: Track Media Error Event description: Send an error event for an active media tracking session. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaErrorRequest' examples: MediaerrorRequestExample: summary: Default mediaError request x-microcks-default: true value: events: - xdm: eventType: media.error mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Error event tracked successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/sessionComplete: post: operationId: mediaSessionComplete summary: Complete a Media Session description: >- End an active media tracking session. Indicates the content was watched to completion. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediasessioncompleteRequestExample: summary: Default mediaSessionComplete request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Session completed successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /ee/va/v1/sessionEnd: post: operationId: mediaSessionEnd summary: End a Media Session description: >- End a media tracking session. Can be used when the viewer abandons content before completion. tags: - Media Edge API parameters: - $ref: '#/components/parameters/datastreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MediaEventRequest' examples: MediasessionendRequestExample: summary: Default mediaSessionEnd request x-microcks-default: true value: events: - xdm: eventType: example_value mediaCollection: {} timestamp: '2026-01-15T10:30:00Z' responses: '204': description: Session ended successfully. '400': $ref: '#/components/responses/BadRequest' security: - bearerAuth: [] apiKey: [] orgId: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: bearerAuth: type: http scheme: bearer description: >- OAuth 2.0 access token for authenticated data collection via server.adobedc.net. apiKey: type: apiKey in: header name: x-api-key description: Client ID credential from Adobe Developer Console. orgId: type: apiKey in: header name: x-gw-ims-org-id description: Adobe Organization ID. parameters: datastreamId: name: datastreamId in: query required: true schema: type: string description: >- The ID of the datastream configured in Adobe Experience Platform for data routing and processing. requestId: name: requestId in: query schema: type: string description: >- An optional external request tracing ID. If not provided, the Edge Network generates one automatically. responses: BadRequest: description: The request was malformed or invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: Insufficient permissions to access the resource. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' RequestTimeout: description: The request timed out. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' TooManyRequests: description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' InternalServerError: description: An unexpected server error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadGateway: description: The server received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' ServiceUnavailable: description: The service is temporarily unavailable. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' GatewayTimeout: description: The upstream server did not respond in time. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: ErrorResponse: type: object properties: type: type: string format: uri example: https://www.example.com status: type: integer example: 10 title: type: string example: Example Title detail: type: string example: example_value report: type: object properties: errors: type: array items: type: string # XDM Event example: example_value XDMEvent: type: object description: An Experience Data Model (XDM) event object. properties: identityMap: type: object description: >- A map of identity namespaces to arrays of identity objects for cross-device identity stitching. additionalProperties: type: array items: type: object properties: id: type: string description: The identity value. authenticatedState: type: string enum: - ambiguous - authenticated - loggedOut primary: type: boolean example: example_value eventType: type: string description: >- The type of event (e.g., web.webpagedetails.pageViews, commerce.productViews, commerce.purchases). example: example_value web: type: object description: Web-specific event data. properties: webPageDetails: type: object properties: URL: type: string format: uri name: type: string isHomePage: type: boolean webReferrer: type: object properties: URL: type: string format: uri example: example_value commerce: type: object description: Commerce-specific event data. properties: purchases: type: object properties: value: type: number productViews: type: object properties: value: type: number order: type: object properties: purchaseID: type: string currencyCode: type: string priceTotal: type: number productListItems: type: array items: type: object properties: SKU: type: string name: type: string quantity: type: integer priceTotal: type: number example: example_value timestamp: type: string format: date-time description: The ISO 8601 timestamp of the event. # Interact Endpoint example: '2026-01-15T10:30:00Z' InteractRequest: type: object required: - event properties: event: type: object required: - xdm properties: xdm: $ref: '#/components/schemas/XDMEvent' data: type: object description: >- Custom free-form data that does not map to an XDM schema. Useful for sending additional context or non-XDM data. additionalProperties: true example: example_value InteractResponse: type: object properties: requestId: type: string description: The unique identifier for this request. example: '500123' handle: type: array description: Array of service response handles. items: type: object properties: type: type: string description: >- The handle type (e.g., locationHint:result, state:store, personalization:decisions, identity:result). payload: type: array items: type: object additionalProperties: true eventIndex: type: integer # Collect Endpoint example: [] CollectRequest: type: object required: - events properties: events: type: array description: An array of events to send to the Edge Network. items: type: object required: - xdm properties: xdm: $ref: '#/components/schemas/XDMEvent' data: type: object description: Custom free-form data. additionalProperties: true example: [] CollectResponse: type: object properties: requestId: type: string description: The unique identifier for this request. # Media Edge API example: '500123' MediaSessionStartRequest: type: object required: - events properties: events: type: array items: type: object required: - xdm properties: xdm: type: object required: - eventType - mediaCollection - timestamp properties: eventType: type: string enum: - media.sessionStart mediaCollection: type: object required: - sessionDetails - playhead properties: sessionDetails: type: object properties: name: type: string description: The name of the media content. friendlyName: type: string description: Human-readable name for the media. length: type: integer description: The length of the media in seconds. contentType: type: string description: The content type (e.g., vod, live, linear). playerName: type: string description: The name of the media player. channel: type: string description: The distribution channel. hasResume: type: boolean description: Whether this is a resumed session. playhead: type: integer description: The current playhead position in seconds. timestamp: type: string format: date-time example: [] MediaSessionStartResponse: type: object properties: requestId: type: string example: '500123' handle: type: array items: type: object properties: type: type: string payload: type: array items: type: object properties: sessionId: type: string description: The media session ID for subsequent tracking events. example: [] MediaEventRequest: type: object required: - events properties: events: type: array items: type: object required: - xdm properties: xdm: type: object required: - eventType - mediaCollection - timestamp properties: eventType: type: string description: The media event type. mediaCollection: type: object required: - playhead - sessionID properties: playhead: type: integer description: The current playhead position in seconds. sessionID: type: string description: The session ID returned from sessionStart. timestamp: type: string format: date-time example: [] MediaErrorRequest: type: object required: - events properties: events: type: array items: type: object required: - xdm properties: xdm: type: object required: - eventType - mediaCollection - timestamp properties: eventType: type: string enum: - media.error mediaCollection: type: object required: - playhead - sessionID - errorDetails properties: playhead: type: integer sessionID: type: string errorDetails: type: object properties: name: type: string description: The error name or code. source: type: string enum: - player - external description: The source of the error. timestamp: type: string format: date-time example: [] tags: - name: Edge Network API description: >- Send event data directly to the Adobe Experience Platform Edge Network. Supports both interactive (interact) and non-interactive (collect) data collection with authenticated and non-authenticated modes. - name: Media Edge API description: >- Track media playback events through the Adobe Experience Platform Edge Network. Requires the Streaming Media Collection Add-on. Supports session management, play/pause tracking, buffering, and error reporting.