openapi: 3.2.0 info: title: Adobe Analytics 2.0 Data Feed API. Create, update retrieve, and manage data feeds and column presets. Datafeed API description: "Adobe Analytics Data Feed API 2.0\n\n Note: Adobe may add optional request and response members (name/value pairs) to existing API objects at any time and without notice or changes in versioning. Adobe recommends that you refer to the API documentation of any third-party tool you integrate with our APIs so that such additions are ignored in processing if not understood. If implemented properly, such additions are non-breaking changes for your implementation. Adobe will not remove parameters or add required parameters without first providing standard notification through release notes." version: v2 servers: - url: https://analytics.adobe.io/api tags: - name: Datafeed API description: API to create, update and retrieve datafeed with a user token paths: /{globalCompanyId}/data_feeds/datafeed: post: tags: - Datafeed API summary: Create datafeed description: "**Required fields are:**\n\n- feedName: Name of the datafeed\n- rsid: Report suite String identifier\n- columnPreset: Column preset identifier\n- schedule.startDate: Start date of the schedule in ISO 8601 format\n- delivery.cloudLocationUUID: Cloud storage location UUID\n- delivery.notificationEmail: List of notification email addresses\n\n**Optional fields and defaults are:**\n\n- feedState: State of the datafeed [created, hold, active(default)]\n- dynamicLookups: Boolean to enable/disable dynamic lookups [true, false(default)]\n- replaceEscapedChars: Boolean to enable/disable replacing escaped characters [true, false(default)]\n- schedule.interval: Delivery interval [daily, hourly(default)]\n- schedule.delay: Integer representing the delay in processing in minutes 0 to 9999 (default=0)\n- packaging.type: String representing the packaging type [flat, chunked(default)]\n- packaging.chunkSize: Integer representing the chunk size in MB [1024, 2048(default), 4096]\n- packaging.compression: String representing the compression type [zip, gzip(default)]\n- packaging.manifest: String representing the manifest type [no-file, fin-file, manifest-file(default)]\n- packaging.noDataManifest: Boolean to enable/disable no data manifest [true, false(default)]\n- lateHits.enabled: Boolean to enable/disable late hits [true, false(default)]\n- lateHits.lookback: Integer representing the lookback period in hours [0 to 26280 (default = 0)]\n\n**Example 1 with only required fields:**\n\n```json\n{\n \"feedName\": \"ExampleFeed1\",\n \"rsid\": \"example-rsid\",\n \"columnPreset\": 1,\n \"schedule\": {\n \"startDate\": \"2024-01-01T00:00:00Z\"\n },\n \"delivery\": {\n \"cloudLocationUUID\": \"your-location-uuid\",\n \"notificationEmail\": [\"test@example.com\"]\n }\n}\n```\n\n**Example 2 with required and optional fields:**\n\n```json\n{\n \"feedName\": \"ExampleFeed2\",\n \"rsid\": \"example-rsid\",\n \"feedState\": \"active\",\n \"columnPreset\": 1,\n \"notes\": \"Example feed\",\n \"dynamicLookups\": true,\n \"replaceEscapedChars\": false,\n \"schedule\": {\n \"startDate\": \"2025-06-01T00:00:00Z\",\n \"endDate\": \"2026-12-31T23:59:59Z\",\n \"interval\": \"hourly\",\n \"delay\": 100\n },\n \"packaging\": {\n \"type\": \"chunked\",\n \"chunkSize\": 4096,\n \"compression\": \"gzip\",\n \"manifest\": \"manifest-file\",\n \"noDataManifest\": true\n },\n \"delivery\": {\n \"cloudLocationUUID\": \"your-location-uuid\",\n \"notificationEmail\": [\"test@example.com\"]\n },\n \"lateHits\": {\n \"enabled\": true,\n \"lookback\": 1000\n }\n}\n```\n" operationId: create_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' requestBody: content: application/json: schema: $ref: '#/components/schemas/DataFeedCreateBody_User' responses: '400': description: Bad Request - Unable to create Datafeed. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '409': description: Datafeed already exists. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '404': description: Datafeed not found. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while creating datafeed. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeed created successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedView' /{globalCompanyId}/data_feeds/datafeed/{feedId}: get: tags: - Datafeed API summary: Get datafeed by ID operationId: get_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - name: feedId in: path description: The feed ID required: true schema: type: integer format: int32 responses: '404': description: Datafeed not found. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while retrieving datafeed. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeed retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedExtendedView' put: tags: - Datafeed API summary: Update datafeed description: "This endpoint allows updating specific fields of an existing datafeed.\n\n**Fields that can be updated:**\n\n- columnPreset: Integer value representing the column preset.\n- notes: String field to add notes about the datafeed.\n- dynamicLookups: Boolean to enable/disable dynamic lookups.\n- replaceEscapedChars: Boolean to enable/disable replacing escaped characters.\n- schedule.endDate: String representing the end date of the datafeed.\n- schedule.delay: Integer representing the delay in minutes.\n- delivery.cloudLocationUUID: UUID string of the delivery location.\n- delivery.notificationEmail: List of strings representing notification email addresses.\n- lateHits.enabled: Boolean to enable/disable late hits.\n- lateHits.lookback: Integer representing the lookback period in hours.\n- packaging.type: String representing the packaging type (e.g., 'flat', 'chunked').\n- packaging.compression: String representing the compression type (e.g., 'gzip', 'zip').\n- packaging.chunkSize: Integer representing the chunk size in MB.\n- packaging.manifest: String representing the manifest type (e.g., 'no-file', 'fin-file', 'manifest-file').\n- packaging.noDataManifest: Boolean to enable/disable no data manifest.\n\n**Example request body:**\n\n```json\n{\n \"columnPreset\": 0,\n \"notes\": \"string\",\n \"dynamicLookups\": true,\n \"replaceEscapedChars\": true,\n \"metadata\": {\n \"feedId\": 0,\n \"feedState\": \"string\"\n },\n \"schedule\": {\n \"startDate\": \"string\",\n \"endDate\": \"string\",\n \"interval\": \"string\",\n \"delay\": 0\n },\n \"packaging\": {\n \"type\": \"string\",\n \"chunkSize\": 0,\n \"compression\": \"string\",\n \"manifest\": \"string\",\n \"noDataManifest\": true\n },\n \"delivery\": {\n \"cloudLocationUUID\": \"string\",\n \"notificationEmail\": [\n \"string\"\n ]\n },\n \"lateHits\": {\n \"enabled\": true,\n \"lookback\": 0\n }\n}\n```\n" operationId: update_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - name: feedId in: path description: The feed ID required: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/DataFeedUpdateBody_User' responses: '404': description: Datafeed not found. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '400': description: Bad Request - Unable to update Datafeed. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while updating datafeed. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeed updated successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedView' /{globalCompanyId}/data_feeds/datafeed/{feedId}/status: put: tags: - Datafeed API summary: Update datafeed status operationId: updateStatus_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - name: feedId in: path description: The feed ID required: true schema: type: integer format: int32 - name: status in: query description: 'Valid values: active, canceled and hold' required: true schema: type: string responses: '404': description: Datafeed not found. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '400': description: Bad Request - Unable to update Datafeed status. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while updating datafeed status. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeed status updated successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedView' /{globalCompanyId}/data_feeds/datafeeds: get: tags: - Datafeed API summary: Gets datafeeds for a report suite operationId: getDataFeedsForReportSuite_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - name: rsid in: query description: The report suite ID required: true schema: type: string responses: '404': description: Datafeeds not found for rsid. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '400': description: Bad Request - Unable to get Datafeed(s). content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while retrieving datafeeds for rsid. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeeds for report suite retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedList' /{globalCompanyId}/data_feeds/datafeeds/search: post: tags: - Datafeed API summary: Gets datafeeds for an array of report suite operationId: getDataFeedsForReportSuites_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' requestBody: content: application/json: schema: $ref: '#/components/schemas/ReportSuiteList_User' responses: '400': description: Bad Request - Unable to get Datafeed(s). content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '404': description: Datafeeds not found for rsids. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while retrieving datafeeds for rsids. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeeds for multiple report suite retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedList' /{globalCompanyId}/data_feeds/datafeed/requests: get: tags: - Datafeed API summary: Gets datafeed requests for a report suite and feed ID description: 'If no dates are provided, the API will return the latest datafeed requests. ' operationId: getDataFeedRequestsForFeed_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - name: rsid in: query description: The report suite ID required: true schema: type: string - name: feedId in: query description: The feed ID required: true schema: type: integer format: int32 - name: startDate in: query description: Filters for Datafeed requests on or after the specified datetime schema: type: string - name: endDate in: query description: Filters for Datafeed requests on or before the specified datetime schema: type: string - name: limit in: query description: Maximum number of records to return. Max value allowed is 5000. Defaults to 500. schema: type: integer format: int32 - name: offset in: query description: Number of records to skip for pagination. Defaults to 0. schema: type: integer format: int32 responses: '400': description: Bad Request - Unable to get Datafeed requests. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '404': description: Datafeed requests not found. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while retrieving datafeed requests. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeed requests retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedRequestListView' /{globalCompanyId}/data_feeds/datafeed/requests/search: post: tags: - Datafeed API summary: Gets datafeed requests description: "This endpoint allows searching for datafeed requests using various filtering criteria.\n\nThe request body supports the following fields:\n\n- rsids **[Required]:** One or more report suite IDs to filter the search.\n\n- feedIds **[Required]**: One or more datafeed IDs to filter the search.\n\n- requestStates: Filter by request states [created, processing, completed].\n\n- billingCustomerId: Filter by billing customer ID.\n\n- useUtc: Indicates whether the date filters should use UTC (default=false).\n\n***Pagination:***\n\n- limit: Maximum number of results to return (default=100).\n\n- offset: Offset for pagination (default=0).\n\n***Sorting:***\n\n- sortOrder: 'asc' or 'desc' (default='desc').\n\n- orderBy: Field to sort by (first_run_date, complete_date, req_period_begin_utc ).\n\n***Date Filters:*** Dates must be in ISO 8601 format with timezone (yyyy-MM-dd'T'HH:mm:ssXXX) or UTC (yyyy-MM-ddTHH:mm:ssZ):\n\n- minRequestPeriodStartDate, maxRequestPeriodStartDate: Filter by request period start date range.\n\n- minAttemptDate, maxAttemptDate: Filter by attempt date range.\n\n- minCompletionDate, maxCompletionDate: Filter by completion date range.\n\n- minSubmittedDate, maxSubmittedDate: Filter by submission date range.\n\n**Example request body:**\n\n```json\n{\n \"rsids\": [\n \"inttest\"\n ],\n \"feedIds\": [\n 6, 7\n ],\n \"requestStates\": [\n \"created\", \"processing\", \"completed\"\n ],\n \"limit\": 10,\n \"offset\": 0,\n \"sortOrder\": \"desc\",\n \"minRequestPeriodStartDate\": \"2023-05-21T08:00:00Z\",\n \"maxRequestPeriodStartDate\": \"2023-07-21T08:10:00Z\"\n}\n```\n" operationId: getDataFeedRequests_1 parameters: - name: globalCompanyId in: path description: The Global Company ID for the Adobe Analytics organization required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' requestBody: content: application/json: schema: $ref: '#/components/schemas/DataFeedRequestsSearchBody' responses: '404': description: Datafeed requests not found. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '400': description: Bad Request - Unable to get Datafeed requests. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '500': description: Error occurred while retrieving datafeed requests. content: application/json: schema: $ref: '#/components/schemas/AnalyticsAsrErrorResponse' '200': description: Datafeed requests retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/DataFeedRequestListView' components: schemas: DataFeedRequestListView: properties: offset: type: integer format: int32 data: type: array items: $ref: '#/components/schemas/DataFeedRequestView' limit: type: integer format: int32 Delivery_User: type: object properties: cloudLocationUUID: type: string notificationEmail: type: array items: type: string DataFeedRequestsSearchBody: type: object properties: rsids: type: array items: type: string feedIds: type: array items: type: integer format: int32 requestStates: type: array items: type: string limit: type: integer format: int32 offset: type: integer format: int32 sortOrder: type: string orderBy: type: string billingCustomerId: type: integer format: int32 useUtc: type: boolean minRequestPeriodStartDate: type: string maxRequestPeriodStartDate: type: string minAttemptDate: type: string maxAttemptDate: type: string minCompletionDate: type: string maxCompletionDate: type: string minSubmittedDate: type: string maxSubmittedDate: type: string ExtendedMetadata: type: object properties: feedId: type: integer format: int32 feedState: type: string timeZone: type: string createdBy: type: string creationDate: type: string modifiedBy: type: string modificationDate: type: string legacyTransport: $ref: '#/components/schemas/LegacyTransportConfig' description: Extended Metadata for DataFeedExtendedView DataFeedRequestView: type: object properties: rsid: type: string feedId: type: integer format: int32 feedName: type: string feedState: type: string requestId: type: integer format: int64 submittedDate: type: string runCount: type: integer format: int32 runAttempt: type: string completeDate: type: string requestPeriodBegin: type: string requestPeriodEnd: type: string requestState: type: string useUTC: type: integer format: int32 errorCode: type: integer format: int32 errorMsg: type: string timezone: type: string AnalyticsAsrErrorResponse: properties: errorDescription: type: string errorCode: type: string errorId: type: string DataFeedExtendedView: properties: dynamicLookups: type: boolean schedule: $ref: '#/components/schemas/Schedule' delivery: $ref: '#/components/schemas/Delivery' columnPreset: type: integer format: int32 notes: type: string feedName: type: string extendedMetadata: $ref: '#/components/schemas/ExtendedMetadata' rsid: type: string lateHits: $ref: '#/components/schemas/LateHits' packaging: $ref: '#/components/schemas/Packaging' replaceEscapedChars: type: boolean DataFeedList: properties: data: type: array items: $ref: '#/components/schemas/DataFeedView' Delivery: type: object properties: cloudLocationUUID: type: string notificationEmail: type: array items: type: string Packaging: type: object properties: type: type: string chunkSize: type: integer format: int32 compression: type: string manifest: type: string noDataManifest: type: boolean LegacyTransportConfig: type: object properties: transportId: type: integer format: int64 protocol: type: string hostname: type: string port: type: integer format: int32 directoryPath: type: string prefix: type: string skipRename: type: boolean bucket: type: string container: type: string accountName: type: string projectId: type: string exportLocationId: type: string Metadata: type: object properties: feedId: type: integer format: int32 feedState: type: string timeZone: type: string createdBy: type: string creationDate: type: string modifiedBy: type: string modificationDate: type: string description: Metadata for DataFeedView LateHits_User: type: object properties: enabled: type: boolean lookback: type: integer format: int32 Packaging_User: type: object properties: type: type: string chunkSize: type: integer format: int32 compression: type: string manifest: type: string noDataManifest: type: boolean Schedule: type: object properties: startDate: type: string endDate: type: string interval: type: string delay: type: integer format: int32 Schedule_User: type: object properties: startDate: type: string endDate: type: string interval: type: string delay: type: integer format: int32 DataFeedUpdateBody_User: type: object properties: columnPreset: type: integer format: int32 notes: type: string dynamicLookups: type: boolean replaceEscapedChars: type: boolean metadata: $ref: '#/components/schemas/UpdateMetadata_User' schedule: $ref: '#/components/schemas/Schedule_User' packaging: $ref: '#/components/schemas/Packaging_User' delivery: $ref: '#/components/schemas/Delivery_User' lateHits: $ref: '#/components/schemas/LateHits_User' UpdateMetadata_User: type: object properties: feedId: type: integer format: int32 feedState: type: string description: Metadata for the DataFeedUpdateBody DataFeedView: properties: dynamicLookups: type: boolean schedule: $ref: '#/components/schemas/Schedule' delivery: $ref: '#/components/schemas/Delivery' metadata: $ref: '#/components/schemas/Metadata' columnPreset: type: integer format: int32 notes: type: string feedName: type: string rsid: type: string lateHits: $ref: '#/components/schemas/LateHits' packaging: $ref: '#/components/schemas/Packaging' replaceEscapedChars: type: boolean DataFeedCreateBody_User: required: - columnPreset - delivery - feedName - rsid - schedule type: object properties: feedName: type: string rsid: type: string feedState: type: string columnPreset: type: integer format: int32 notes: type: string dynamicLookups: type: boolean replaceEscapedChars: type: boolean schedule: $ref: '#/components/schemas/Schedule_User' packaging: $ref: '#/components/schemas/Packaging_User' delivery: $ref: '#/components/schemas/Delivery_User' lateHits: $ref: '#/components/schemas/LateHits_User' LateHits: type: object properties: enabled: type: boolean lookback: type: integer format: int32 ReportSuiteList_User: type: object properties: rsids: type: array items: type: string parameters: authorization: name: Authorization in: header description: The access token copied from your AA API client integration, prefixed with "Bearer ". required: true schema: type: string x-api-key: name: x-api-key in: header description: The API key copied from your AA API client integration. For more information on how to obtain this value, see [Getting started with the CJA API](https://developer.adobe.com/cja-apis/docs/getting-started/). required: true schema: type: string