{ "openapi": "3.0.0", "paths": { "/api/v3/activity-logs/{orgId}": { "get": { "description": "Returns a paged list of activity logs using cursor-based paging and property filters.\n\n**Common Use Cases:**\n- Audit user actions across your organization\n- Monitor scenario changes and deletion\n- Track team membership changes\n\n**Pagination:** Use the `next` value from `_page` as the `start` parameter for subsequent requests to iterate through all results.", "operationId": "ActivityLogsV3Controller_getActivityLogs", "parameters": [ { "name": "orgId", "required": true, "in": "path", "description": "Fusion organization ID", "schema": { "type": "number" } }, { "name": "property", "required": false, "in": "query", "description": "Property filters for refining results. Multiple filters can be specified and are AND-ed together.\n\n**Example Usage:**\n- Single filter: `property=entity==scenario`\n- Multiple filters: `property=entity==scenario&property=action==created`\n\n**Allowed Fields:**\n`timestamp`, `entity`, `entityId`, `action`, `teamId`, `teamName`, `userId`, `userName`, `messageId`, `message`\n\n**Operators:**\n- `==` equals\n- `!=` not equals\n- `>` greater than\n- `>=` greater than or equal to\n- `<` less than\n- `<=` less than or equal to\n- `~` case-insensitive regex match\n\n**Field Existence:**\n- `field` - field exists\n- `!field` - field does not exist", "schema": { "type": "array", "items": { "type": "string" } }, "examples": { "entityFilter": { "summary": "Filter by entity type", "value": [ "entity==scenario" ] }, "dateRange": { "summary": "Filter by date range", "value": [ "timestamp>=2025-01-01T00:00:00Z", "timestamp<=2025-01-31T23:59:59Z" ] }, "multipleFilters": { "summary": "Multiple conditions", "value": [ "entity==scenario", "action==created", "userName~John" ] } } }, { "name": "limit", "required": false, "in": "query", "description": "Maximum number of items to return", "schema": { "minimum": 1, "maximum": 1000, "example": 50, "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Paging cursor. Must be a timestamp (UTC) corresponding to the \"timestamp\" field. Used only when orderby is set.", "schema": { "example": "2025-12-09T11:39:34.834Z", "type": "string" } }, { "name": "orderby", "required": false, "in": "query", "description": "Sort order. Only timestamp (UTC) is supported. Prefix with \"-\" for descending or \"+\" for ascending", "schema": { "example": "-timestamp", "type": "string" } } ], "responses": { "200": { "description": "Successfully retrieved paged activity logs", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivityLogsResponseDto" }, "example": { "items": [ { "timestamp": "2025-12-09T11:39:34.834Z", "userId": 2555, "userName": "John Snow", "messageId": "5833b3d8-1215-4dc0-aa51-423a1993f7d1", "teamId": 34, "entityId": 38641, "teamName": "My Team", "orgId": 2245, "entity": "scenario", "action": "updated", "message": "John Snow updated \"Update Project tasks (Data Store Project)\" scenario" }, { "timestamp": "2025-12-09T10:12:01.000Z", "userId": 2556, "userName": "Jane Doe", "messageId": "7a44c5e9-3426-5ed1-bb62-534b2aa4g8f2", "teamId": 34, "entityId": 38642, "teamName": "My Team", "orgId": 2245, "entity": "scenario", "action": "created", "message": "Jane Doe created \"New Integration\" scenario" } ], "_page": { "orderby": "-timestamp", "start": "2025-12-09T11:39:34.834Z", "next": "2025-12-09T09:45:22.100Z", "property": [ "entity==scenario" ], "count": 2 }, "_links": { "next": { "href": "/api/v3/activity-logs/2245?orderby=-timestamp&start=2025-12-09T09:45:22.100Z&limit=50&property=entity==scenario" }, "page": { "href": "/api/v3/activity-logs/2245{?orderby,limit,start,property}" } } } } } }, "400": { "description": "Bad request - Invalid parameters or filters", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "examples": { "missingOrderby": { "summary": "Missing orderby with pagination", "value": { "type": "BadRequest", "status": 400, "title": "Paging parameters require orderby to be specified", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } }, "invalidProperty": { "summary": "Invalid property filter syntax", "value": { "type": "BadRequest", "status": 400, "title": "Invalid property filter: unknown field 'invalidField'", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } } }, "401": { "description": "Authentication required", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Unauthorized", "status": 401, "title": "Authentication required", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "403": { "description": "Access denied", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Forbidden", "status": 403, "title": "Access denied", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "500": { "description": "Server error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "InternalServerError", "status": 500, "title": "Server error", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } }, "security": [ { "Authorization": [], "API Key": [], "IMS Org ID": [], "Region": [] } ], "summary": "Get activity logs", "tags": [ "Activity Logs" ], "x-codeSamples": [ { "lang": "curl", "label": "cURL", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/activity-logs/2245?limit=50&orderby=-timestamp&property=entity==scenario' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION'" } ] } }, "/api/v3/activity-logs/{orgId}/export": { "get": { "description": "Exports activity logs as CSV or XLSX based on the Accept header. Use this endpoint to download activity logs for offline analysis, compliance reporting, or integration with external tools.\n\n**Export Formats:**\n- CSV: Set `Accept: text/csv` (default)\n- Excel: Set `Accept: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`\n\n**Note:** Large exports may take several seconds to generate.", "operationId": "ActivityLogsV3Controller_exportActivityLogs", "parameters": [ { "name": "orgId", "required": true, "in": "path", "description": "Fusion organization ID", "schema": { "type": "number" } }, { "name": "accept", "required": false, "in": "header", "description": "Response media type for the exported file.\n\n**Supported values:**\n- `text/csv` - Export as CSV (default)\n- `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` - Export as Excel (.xlsx)", "schema": { "type": "string", "enum": [ "text/csv", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ], "default": "text/csv" }, "examples": { "csv": { "summary": "Export as CSV", "value": "text/csv" }, "excel": { "summary": "Export as Excel", "value": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" } } }, { "name": "property", "required": false, "in": "query", "description": "Property filters for refining results. Multiple filters can be specified and are AND-ed together.\n\n**Example Usage:**\n- Single filter: `property=entity==scenario`\n- Multiple filters: `property=entity==scenario&property=action==created`\n\n**Allowed Fields:**\n`timestamp`, `entity`, `entityId`, `action`, `teamId`, `teamName`, `userId`, `userName`, `messageId`, `message`\n\n**Operators:**\n- `==` equals\n- `!=` not equals\n- `>` greater than\n- `>=` greater than or equal to\n- `<` less than\n- `<=` less than or equal to\n- `~` case-insensitive regex match\n\n**Field Existence:**\n- `field` - field exists\n- `!field` - field does not exist", "schema": { "type": "array", "items": { "type": "string" } }, "examples": { "entityFilter": { "summary": "Filter by entity type", "value": [ "entity==scenario" ] }, "dateRange": { "summary": "Filter by date range", "value": [ "timestamp>=2025-01-01T00:00:00Z", "timestamp<=2025-01-31T23:59:59Z" ] }, "multipleFilters": { "summary": "Multiple conditions", "value": [ "entity==scenario", "action==created", "userName~John" ] } } }, { "name": "orderby", "required": false, "in": "query", "description": "Sort order. Only timestamp (UTC) is supported. Prefix with \"-\" for descending or \"+\" for ascending", "schema": { "example": "-timestamp", "type": "string" } } ], "responses": { "200": { "description": "Successfully exported activity logs", "content": { "text/csv": { "schema": { "type": "string", "format": "binary" }, "example": "timestamp,userId,userName,teamId,teamName,entity,entityId,action,message\n2025-12-09T11:39:34.834Z,2555,John Snow,34,My Team,scenario,38641,updated,\"John Snow updated 'Update Project tasks' scenario\"\n2025-12-09T10:12:01.000Z,2556,Jane Doe,34,My Team,scenario,38642,created,\"Jane Doe created 'New Integration' scenario\"" }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { "schema": { "type": "string", "format": "binary", "description": "Excel file containing activity logs" } } } }, "401": { "description": "Authentication required", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Unauthorized", "status": 401, "title": "Authentication required", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "403": { "description": "Access denied", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Forbidden", "status": 403, "title": "Access denied", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "406": { "description": "Not acceptable", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "NotAcceptable", "status": 406, "title": "Supported formats: text/csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "500": { "description": "Server error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "InternalServerError", "status": 500, "title": "Server error", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } }, "security": [ { "Authorization": [], "API Key": [], "IMS Org ID": [], "Region": [] } ], "summary": "Export activity logs", "tags": [ "Activity Logs" ], "x-codeSamples": [ { "lang": "curl", "label": "cURL (CSV)", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/activity-logs/2245/export?orderby=-timestamp' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION' \\\n -H 'Accept: text/csv' \\\n -o activity-logs.csv" }, { "lang": "curl", "label": "cURL (Excel)", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/activity-logs/2245/export?orderby=-timestamp' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION' \\\n -H 'Accept: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' \\\n -o activity-logs.xlsx" } ] } }, "/api/v3/operations": { "get": { "description": "Retrieves operation counts for an organization, optionally filtered by team, scenario, and/or package, with optional grouping by dimension.\n\n**Common Use Cases:**\n- Monitor daily or monthly operation consumption across your organization\n- Track operation usage per team or scenario\n- Identify high-volume scenarios consuming the most operations\n- Generate usage reports grouped by module or package\n\n**Grouping:** Use the `groupBy` parameter to break down operation counts by `team`, `scenario`, `package`, or `module`. When set, each time-period entry in the response includes a nested array broken down by the chosen group.\n\n**Filtering:** Use the `property` parameter to filter results by operation count (e.g., only show entries with 100+ operations).\n\n**Date Range:** The `from` and `to` parameters define the time window. The maximum allowed range is 1 year. Results are automatically grouped by `day` or `month` depending on the range.", "operationId": "OperationsV3Controller_getOperations", "parameters": [ { "name": "from", "required": true, "in": "query", "description": "Start date in ISO 8601 format (UTC). Defines the beginning of the date range for operation counts.\n\n**Note:** Date range between `from` and `to` cannot exceed 1 year.", "schema": { "example": "2025-01-01T12:00:00.000Z", "type": "string" } }, { "name": "to", "required": true, "in": "query", "description": "End date in ISO 8601 format (UTC). Defines the end of the date range for operation counts.\n\n**Note:** Date range between `from` and `to` cannot exceed 1 year.", "schema": { "example": "2025-02-01T12:00:00.000Z", "type": "string" } }, { "name": "organizationId", "required": true, "in": "query", "description": "Fusion organization ID. All results are scoped to this organization.", "schema": { "example": 12345, "type": "number" } }, { "name": "teamId", "required": false, "in": "query", "description": "Filter results to a specific team. When provided, only operations for this team are returned.", "schema": { "example": 67890, "type": "number" } }, { "name": "scenarioId", "required": false, "in": "query", "description": "Filter results to a specific scenario.\n\n**Note:** Requires `teamId` to also be specified.", "schema": { "example": 11111, "type": "number" } }, { "name": "package", "required": false, "in": "query", "description": "Filter results to a specific package name.\n\n**Note:** Requires `scenarioId` to also be specified.", "schema": { "example": "workfront-workfront", "type": "string" } }, { "name": "groupBy", "required": false, "in": "query", "description": "Group operation counts by a specific dimension. When set, each time-period entry in the response includes a nested array broken down by the chosen group.\n\n**Available Groups:**\n- `module` - Group by module name\n- `package` - Group by package name\n- `scenario` - Group by scenario ID\n- `team` - Group by team ID", "schema": { "enum": [ "module", "package", "scenario", "team" ], "type": "string" }, "examples": { "groupByTeam": { "summary": "Group by team", "value": "team" }, "groupByScenario": { "summary": "Group by scenario", "value": "scenario" }, "groupByPackage": { "summary": "Group by package", "value": "package" }, "groupByModule": { "summary": "Group by module", "value": "module" } } }, { "name": "orderBy", "required": false, "in": "query", "description": "Sort results by timestamp. Prefix with `+` for ascending or `-` for descending.\n\n**Values:**\n- `+timestamp` - Oldest first (ascending)\n- `-timestamp` - Newest first (descending)\n\n**Default:** Oldest first (`+timestamp`).", "schema": { "example": "-timestamp", "type": "string" }, "examples": { "descending": { "summary": "Newest first", "value": "-timestamp" }, "ascending": { "summary": "Oldest first", "value": "+timestamp" } } }, { "name": "property", "required": false, "in": "query", "description": "Filter results by operations count. When `groupBy` is used, filters the nested arrays by their operations value.\n\n**Format:** `operations`\n\n**Operators:**\n- `==` equals\n- `!=` not equals\n- `>` greater than\n- `>=` greater than or equal to\n- `<` less than\n- `<=` less than or equal to", "schema": { "example": "operations>=100", "type": "string" }, "examples": { "minimumOps": { "summary": "At least 100 operations", "value": "operations>=100" }, "exactCount": { "summary": "Exactly 500 operations", "value": "operations==500" }, "highVolume": { "summary": "More than 1000 operations", "value": "operations>1000" } } } ], "responses": { "200": { "description": "Successfully retrieved operation counts", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperationsResponseV3Dto" }, "examples": { "ungrouped": { "summary": "Operation counts without grouping", "value": { "items": [ { "timestamp": "2025-01-15", "operations": 1250 }, { "timestamp": "2025-01-14", "operations": 980 }, { "timestamp": "2025-01-13", "operations": 1100 } ], "timeUnit": "day", "orderBy": "-timestamp" } }, "groupedByTeam": { "summary": "Operation counts grouped by team", "value": { "items": [ { "timestamp": "2025-01-15", "teams": [ { "id": 67890, "operations": 750 }, { "id": 67891, "operations": 500 } ] }, { "timestamp": "2025-01-14", "teams": [ { "id": 67890, "operations": 600 }, { "id": 67891, "operations": 380 } ] } ], "timeUnit": "day", "orderBy": "-timestamp" } }, "groupedByScenario": { "summary": "Operation counts grouped by scenario", "value": { "items": [ { "timestamp": "2025-01-15", "scenarios": [ { "id": 11111, "operations": 400 }, { "id": 11112, "operations": 350 } ] } ], "timeUnit": "day", "orderBy": "-timestamp" } } } } } }, "400": { "description": "Bad request - Invalid parameters or date range", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "examples": { "validationError": { "summary": "Parameter validation failure", "value": { "type": "BadRequest", "status": 400, "title": "Validation failed", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg", "errors": [ "teamId must be a number conforming to the specified constraints" ] } } }, "dateRangeExceeded": { "summary": "Date range exceeds maximum", "value": { "type": "BadRequest", "status": 400, "title": "Date range cannot exceed 1 year", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } }, "missingDependency": { "summary": "Missing required dependency parameter", "value": { "type": "BadRequest", "status": 400, "title": "scenarioId requires teamId to be specified", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } } }, "401": { "description": "Authentication required", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Unauthorized", "status": 401, "title": "Authentication required", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "403": { "description": "Access denied", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Forbidden", "status": 403, "title": "Access denied", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "500": { "description": "Server error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "InternalServerError", "status": 500, "title": "Server error", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } }, "security": [ { "Authorization": [], "API Key": [], "IMS Org ID": [], "Region": [] } ], "summary": "Get operations count", "tags": [ "Operations" ], "x-codeSamples": [ { "lang": "curl", "label": "cURL", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/operations?organizationId=12345&from=2025-01-01T12:00:00.000Z&to=2025-02-01T12:00:00.000Z&orderBy=-timestamp' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION'" }, { "lang": "curl", "label": "cURL (grouped by team)", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/operations?organizationId=12345&from=2025-01-01T12:00:00.000Z&to=2025-02-01T12:00:00.000Z&groupBy=team&orderBy=-timestamp' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION'" } ] } }, "/api/v3/operations/summary": { "get": { "description": "Retrieves a summary of total operation counts for an organization, broken down by scenario and team. Use this endpoint to get a high-level overview of operation consumption without time-series data.\n\n**Common Use Cases:**\n- Identify which scenarios consume the most operations\n- Compare operation usage across teams\n- Find underperforming or overloaded scenarios\n\n**Sorting:** Use the `orderBy` parameter to sort results by `scenarioId`, `teamId`, or `operations` count in ascending or descending order.\n\n**Filtering:** Use the `property` parameter to filter scenarios by their total operation count (e.g., only show scenarios with 100+ operations).\n\n**Date Range:** The `from` and `to` parameters define the time window for aggregation. The maximum allowed range is 1 year.", "operationId": "OperationsV3Controller_getSummaryByOrg", "parameters": [ { "name": "from", "required": true, "in": "query", "description": "Start date in ISO 8601 format (UTC). Defines the beginning of the date range for the summary.\n\n**Note:** Date range between `from` and `to` cannot exceed 1 year.", "schema": { "example": "2025-01-01T12:00:00.000Z", "type": "string" } }, { "name": "to", "required": true, "in": "query", "description": "End date in ISO 8601 format (UTC). Defines the end of the date range for the summary.\n\n**Note:** Date range between `from` and `to` cannot exceed 1 year.", "schema": { "example": "2025-02-01T12:00:00.000Z", "type": "string" } }, { "name": "organizationId", "required": true, "in": "query", "description": "Fusion organization ID. All results are scoped to this organization.", "schema": { "example": 12345, "type": "number" } }, { "name": "teamId", "required": false, "in": "query", "description": "Filter results to a specific team. When provided, only scenarios belonging to this team are included in the summary.", "schema": { "example": 67890, "type": "number" } }, { "name": "scenarioId", "required": false, "in": "query", "description": "Filter results to a specific scenario. Returns the operation count for this single scenario.", "schema": { "example": 11111, "type": "number" } }, { "name": "package", "required": false, "in": "query", "description": "Filter results to a specific package name.", "schema": { "example": "workfront-workfront", "type": "string" } }, { "name": "orderBy", "required": false, "in": "query", "description": "Sort summary results by field. Prefix with `+` for ascending or `-` for descending.\n\n**Sortable Fields:**\n- `scenarioId` - Sort by scenario ID\n- `teamId` - Sort by team ID\n- `operations` - Sort by operation count\n\n**Default:** `-operations` (highest operation count first).", "schema": { "example": "-operations", "type": "string" }, "examples": { "mostOperations": { "summary": "Highest operations first", "value": "-operations" }, "leastOperations": { "summary": "Lowest operations first", "value": "+operations" }, "byScenario": { "summary": "Sort by scenario ID ascending", "value": "+scenarioId" }, "byTeam": { "summary": "Sort by team ID descending", "value": "-teamId" } } }, { "name": "property", "required": false, "in": "query", "description": "Filter scenarios by their total operations count within the specified date range.\n\n**Format:** `operations`\n\n**Operators:**\n- `==` equals\n- `!=` not equals\n- `>` greater than\n- `>=` greater than or equal to\n- `<` less than\n- `<=` less than or equal to", "schema": { "example": "operations>=100", "type": "string" }, "examples": { "minimumOps": { "summary": "At least 100 operations", "value": "operations>=100" }, "exactCount": { "summary": "Exactly 500 operations", "value": "operations==500" }, "highVolume": { "summary": "More than 1000 operations", "value": "operations>1000" } } } ], "responses": { "200": { "description": "Successfully retrieved operations summary", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperationsV3SummaryResponseDto" }, "example": { "items": [ { "scenarioId": 11111, "teamId": 67890, "operations": 4500 }, { "scenarioId": 11112, "teamId": 67890, "operations": 2300 }, { "scenarioId": 22222, "teamId": 67891, "operations": 1800 } ], "totalOperations": 8600, "orderBy": "-operations" } } } }, "400": { "description": "Bad request - Invalid parameters or date range", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "examples": { "validationError": { "summary": "Parameter validation failure", "value": { "type": "BadRequest", "status": 400, "title": "Validation failed", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg", "errors": [ "teamId must be a number conforming to the specified constraints" ] } } }, "dateRangeExceeded": { "summary": "Date range exceeds maximum", "value": { "type": "BadRequest", "status": 400, "title": "Date range cannot exceed 1 year", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } }, "invalidOrderBy": { "summary": "Invalid sort field", "value": { "type": "BadRequest", "status": 400, "title": "Invalid orderBy field. Supported: scenarioId, teamId, operations", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } } }, "401": { "description": "Authentication required", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Unauthorized", "status": 401, "title": "Authentication required", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "403": { "description": "Access denied", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "Forbidden", "status": 403, "title": "Access denied", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } }, "500": { "description": "Server error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ErrorResponseDto" }, "example": { "type": "InternalServerError", "status": 500, "title": "Server error", "report": { "request-id": "abc-123-def-456", "x-gw-ims-org-id": "1234567890ABCDEF@AdobeOrg" } } } } } }, "security": [ { "Authorization": [], "API Key": [], "IMS Org ID": [], "Region": [] } ], "summary": "Get operations summary", "tags": [ "Operations" ], "x-codeSamples": [ { "lang": "curl", "label": "cURL", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/operations/summary?organizationId=12345&from=2025-01-01T12:00:00.000Z&to=2025-02-01T12:00:00.000Z&orderBy=-operations' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION'" }, { "lang": "curl", "label": "cURL (filtered by team)", "source": "curl -X GET 'https://fusion.adobe.io/api/v3/operations/summary?organizationId=12345&from=2025-01-01T12:00:00.000Z&to=2025-02-01T12:00:00.000Z&teamId=67890&orderBy=-operations&property=operations>=100' \\\n -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n -H 'x-api-key: YOUR_CLIENT_ID' \\\n -H 'x-gw-ims-org-id: YOUR_ORG_ID@AdobeOrg' \\\n -H 'x-gw-region: YOUR_REGION'" } ] } } }, "info": { "title": "Workfront Fusion API", "description": "REST APIs for managing and monitoring your Workfront Fusion resources. Use these APIs to programmatically access activity logs and other Fusion components coming soon.\n\n**Base URL:** https://fusion.adobe.io\n\n**Getting Started:**\n\n For detailed setup instructions, make sure to visit the [Getting Started guide](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/). \n1. Set up authentication in Adobe Developer Console, as documented [here](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/authentication/). \n2. Obtain required headers (Authorization, x-api-key, x-gw-ims-org-id, x-gw-region). More details [here](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/api_headers/). \n3. Update permissions for the technical account, as documented [here](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/technical_accounts/). \n4. Make your first API call.", "version": "v3" }, "tags": [ { "name": "Activity Logs", "description": "Endpoints for getting and exporting log of activities, such as creating a scenario or inviting a user, for your organization. Please note, for accessing activity logs, user must be a Workfront Fusion administrator for the organization.", "externalDocs": { "description": "Find out more in product documentation.", "url": "https://experienceleague.adobe.com/en/docs/workfront-fusion/using/set-up-and-manage-fusion/set-up-and-manage-orgs-and-teams/set-up-orgs-teams-and-users/view-activity-logs-for-an-org" } }, { "name": "Operations", "description": "Endpoints for getting operation count in a particular Fusion organization, grouped by various parameters. An operation is a task performed by a module. For tracking purposes, any successful action performed by a module is an operation.", "externalDocs": { "description": "Find out more in product documentation.", "url": "https://experienceleague.adobe.com/en/docs/workfront-fusion/using/set-up-and-manage-fusion/licensing-and-operations-overviews/operations-in-workfront-fusion" } } ], "servers": [ { "url": "https://fusion.adobe.io", "description": "Production server" } ], "components": { "securitySchemes": { "Authorization": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http", "description": "**Required.** IMS access token for authenticating the user or technical account making the request.\n\nSee the [Authentication guide](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/authentication/) for detailed instructions on obtaining access tokens.\n\n[API Headers Documentation](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/api_headers/)" }, "IMS Org ID": { "type": "apiKey", "in": "header", "name": "x-gw-ims-org-id", "description": "**Required.** Your IMS Organization ID. This validates that the Fusion product is provisioned for your organization and that the user or technical account has appropriate access.\n\n**Example:** `1234567890ABCDEF@AdobeOrg`\n\n[API Headers Documentation](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/api_headers/)" }, "API Key": { "type": "apiKey", "in": "header", "name": "x-api-key", "description": "**Required.** Your application's Client ID from Adobe Developer Console. This identifies your application and is the same value used for IMS authentication.\n\n[API Headers Documentation](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/api_headers/)" }, "Region": { "type": "apiKey", "in": "header", "name": "x-gw-region", "description": "**Required.** Routes requests to the correct Fusion regional instance.\n\n**Example:** `or2`\n\n[API Headers Documentation](https://developer-stage.adobe.com/workfront-fusion-apis/getting-started/api_headers/)" } }, "schemas": { "ErrorReportDto": { "type": "object", "properties": { "request-id": { "type": "string", "description": "Request ID from headers", "example": "req-123" }, "x-gw-ims-org-id": { "type": "string", "description": "Organization ID from headers", "example": "org-456" }, "errors": { "description": "Validation errors (only present for validation failures)", "example": [ "email must be a valid email address", "password must be at least 8 characters" ], "type": "array", "items": { "type": "object" } } } }, "ErrorResponseDto": { "type": "object", "properties": { "type": { "type": "string", "description": "Error type based on HTTP status or validation error", "example": "BadRequest" }, "status": { "type": "number", "description": "HTTP status code", "example": 400, "minimum": 400, "maximum": 599 }, "title": { "type": "string", "description": "Human-readable error message", "examples": { "badRequest": { "value": "Invalid request" }, "unauthorized": { "value": "Authentication required" }, "forbidden": { "value": "Access denied" }, "notFound": { "value": "Resource not found" }, "serverError": { "value": "Server error" }, "validationError": { "value": "Validation failed" } } }, "report": { "description": "Error report with request tracking and additional details", "allOf": [ { "$ref": "#/components/schemas/ErrorReportDto" } ] } }, "required": [ "type", "status", "title", "report" ] }, "ActivityLogDto": { "type": "object", "description": "Represents a single activity event in your Fusion organization. Each log entry captures who performed what action on which entity at a specific time.", "properties": { "timestamp": { "type": "string", "description": "UTC timestamp when the activity occurred. Use this field for time-based filtering and sorting.", "example": "2025-12-09T11:39:34.834Z", "format": "date-time" }, "userId": { "type": "number", "description": "User ID who triggered the activity", "example": 2555 }, "userName": { "type": "string", "description": "User display name", "example": "John Snow" }, "messageId": { "type": "string", "description": "Unique identifier for this activity log entry (UUID format). Use for deduplication and tracking.", "example": "5833b3d8-1215-4dc0-aa51-423a1993f7d1" }, "teamId": { "type": "number", "description": "Team ID associated with the activity", "example": 34 }, "entityId": { "type": "number", "description": "Unique identifier of the specific entity that was affected (e.g., scenario ID, connection ID)", "example": 38641 }, "teamName": { "type": "string", "description": "Team name", "example": "My Team" }, "orgId": { "type": "number", "description": "Fusion organization ID", "example": 2245 }, "entity": { "type": "string", "description": "Entity type that was affected", "enum": [ "team", "scenario", "webhook", "connection", "data structure", "data store", "organization", "folder", "user", "key", "keys" ], "example": "scenario" }, "action": { "type": "string", "description": "Action performed on the entity", "enum": [ "created", "deleted", "renamed", "disabled", "enabled", "deactivated", "reauthorized", "activated", "updated", "moved", "cloned", "invited", "transferred ownership", "changed organization role", "changed team role" ], "example": "updated" }, "message": { "type": "string", "description": "Human-readable activity message", "example": "John Snow updated \"Update Project tasks (Data Store Project)\" scenario" } }, "required": [ "timestamp", "userId", "userName", "messageId", "teamName", "orgId", "entity", "action", "message" ] }, "Page": { "type": "object", "description": "Pagination metadata for cursor-based paging. Use the `next` value as the `start` parameter in your next request to retrieve the following page.", "properties": { "orderby": { "type": "string", "description": "Comma-separated list of sort properties", "example": "-timestamp" }, "start": { "type": "object", "description": "First sort value on this page", "example": "2025-12-09T11:39:34.834Z", "nullable": true }, "next": { "type": "object", "description": "Cursor value to use as the `start` parameter for the next page. If null, you've reached the last page.", "example": "2025-12-09T10:12:01.000Z", "nullable": true }, "property": { "type": "object", "description": "Applied property filters", "example": [ "entity==scenario" ] }, "count": { "type": "number", "description": "Number of items in this page", "example": 50 } }, "required": [ "orderby", "start", "next", "count" ] }, "Link": { "type": "object", "properties": { "href": { "type": "string", "description": "URL" } }, "required": [ "href" ] }, "Links": { "type": "object", "properties": { "next": { "description": "Link to the next page", "example": "/api/v3/activity-logs/2245?orderby=-timestamp&start=2025-12-09T10%3A43%3A58.530Z&limit=2&property=entity==scenario", "allOf": [ { "$ref": "#/components/schemas/Link" } ] }, "page": { "description": "Templated paging link", "example": "/api/v3/activity-logs/2245{?orderby,limit,start,property}", "allOf": [ { "$ref": "#/components/schemas/Link" } ] } }, "required": [ "page" ] }, "ActivityLogsResponseDto": { "type": "object", "description": "Response containing a page of activity logs with navigation links and metadata for cursor-based pagination.", "properties": { "items": { "description": "Activity log entries for the current page", "type": "array", "items": { "$ref": "#/components/schemas/ActivityLogDto" } }, "_page": { "description": "Paging metadata", "allOf": [ { "$ref": "#/components/schemas/Page" } ] }, "_links": { "description": "Navigation links", "allOf": [ { "$ref": "#/components/schemas/Links" } ] } }, "required": [ "items", "_page", "_links" ] }, "ScenarioItemDto": { "type": "object", "properties": { "id": { "type": "number", "example": 12345, "description": "Scenario ID" }, "operations": { "type": "number", "example": 100, "description": "Number of operations for this scenario" } }, "required": [ "id", "operations" ] }, "TeamItemDto": { "type": "object", "properties": { "id": { "type": "number", "example": 67890, "description": "Team ID" }, "operations": { "type": "number", "example": 200, "description": "Number of operations for this team" } }, "required": [ "id", "operations" ] }, "PackageItemDto": { "type": "object", "properties": { "name": { "type": "string", "example": "package-name", "description": "Package name" }, "operations": { "type": "number", "example": 50, "description": "Number of operations for this package" } }, "required": [ "name", "operations" ] }, "ModuleItemDto": { "type": "object", "properties": { "name": { "type": "string", "example": "module-name", "description": "Module name" }, "operations": { "type": "number", "example": 75, "description": "Number of operations for this module" } }, "required": [ "name", "operations" ] }, "OperationsV3ItemDto": { "type": "object", "properties": { "timestamp": { "type": "string", "example": "2025-01-15", "description": "Timestamp for this data point" }, "scenarios": { "description": "Operations grouped by scenario (present when grouped by scenario)", "type": "array", "items": { "$ref": "#/components/schemas/ScenarioItemDto" } }, "teams": { "description": "Operations grouped by team (present when grouped by team)", "type": "array", "items": { "$ref": "#/components/schemas/TeamItemDto" } }, "packages": { "description": "Operations grouped by package (present when grouped by package)", "type": "array", "items": { "$ref": "#/components/schemas/PackageItemDto" } }, "modules": { "description": "Operations grouped by module (present when grouped by module)", "type": "array", "items": { "$ref": "#/components/schemas/ModuleItemDto" } }, "operations": { "type": "number", "example": 500, "description": "Total operations count (present when no grouping is applied)" } }, "required": [ "timestamp" ] }, "OperationsResponseV3Dto": { "type": "object", "properties": { "items": { "description": "Array of operation count data points, sorted by timestamp (see orderBy when provided)", "type": "array", "items": { "$ref": "#/components/schemas/OperationsV3ItemDto" } }, "timeUnit": { "type": "string", "enum": [ "day", "month" ], "example": "day", "description": "Time unit used for grouping the results" }, "orderBy": { "type": "string", "example": "-timestamp", "description": "Present when orderBy was provided in the request; reflects how items are sorted by timestamp" } }, "required": [ "items", "timeUnit" ] }, "OperationsV3SummaryItemDto": { "type": "object", "properties": { "scenarioId": { "type": "number", "example": 12345, "description": "Scenario ID" }, "teamId": { "type": "number", "example": 67890, "description": "Team ID" }, "operations": { "type": "number", "example": 150, "description": "Number of operations for this scenario and team combination" } }, "required": [ "scenarioId", "teamId", "operations" ] }, "OperationsV3SummaryResponseDto": { "type": "object", "properties": { "items": { "description": "Array of operation summaries by scenario and team", "type": "array", "items": { "$ref": "#/components/schemas/OperationsV3SummaryItemDto" } }, "totalOperations": { "type": "number", "example": 1500, "description": "Total sum of all operations across all scenarios and teams" }, "orderBy": { "type": "string", "example": "-operations", "description": "Present when orderBy was provided in the request; reflects how items are sorted" } }, "required": [ "items", "totalOperations" ] } } } }