SAOP Analytics API (from Swagger UI screenshots) ============================================== Base path (from screenshots): - /api Content type: - application/xml (request and response) Entities: - Analytic1 - Analytic2 - Analytic3 -------------------------------------------------- 1) GET /api/analytics1/{analytic1Id} -------------------------------------------------- Description: - Returns a single Analytic1 by ID. Path parameters: - analytic1Id (string) – required. Response (Status 200, application/xml): string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Fields (from example model): - Analytic_1Id : string - Analytic_1Description : string - Active : boolean - InsUpdDate : date-time - Analytic_1ParentId : string - Analytic_1ValidityFrom : date-time - Analytic_1ValidityTo : date-time - Analytic_1Note : string - DeductibleShareCode : string -------------------------------------------------- 2) GET /api/analytics1 -------------------------------------------------- Description: - Returns Analytic1 data, likely a list with optional search and paging. Query parameters (all optional, names as shown): - searchQuery.analytic_1Id : string - searchQuery.active : boolean - searchQuery.requestType : string - searchQuery.page : integer - searchQuery.pageSize : integer - searchQuery.recordDtModifiedFrom : date-time Response (Status 200, application/xml): - Example model in UI uses the same Analytic1 fields: string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Note: - Swagger UI shows this as an inline model; real response may be a collection wrapper or list. -------------------------------------------------- 3) POST /api/analytics1/AddAnalytic1 -------------------------------------------------- Description: - Creates a new Analytic1 record. Body parameter: - Analytic1Class (required), content type application/xml. Body example (application/xml) – structure: string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Response (Status 200, application/xml): string string None Warning string Notes: - ResultCode is shown as "None" in example; likely an enum. - Errors element may repeat or contain multiple messages. -------------------------------------------------- 4) POST /api/analytics1/UpdateAnalytic1 -------------------------------------------------- Description: - Updates an existing Analytic1 record. Body parameter: - Analytic1Class (required), content type application/xml. Body example: - Same Analytic1 XML structure as AddAnalytic1. Response (Status 200, application/xml): None Warning string 5) GET /api/analytics2/{analytic2Id} -------------------------------------------------- Description: - Returns a single Analytic2 by ID (second dimension of analytics). Path parameters: - analytic2Id (string) – required. Response (Status 200, application/xml): string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Fields (from example model): - Analytic_2Id : string - Analytic_2Description : string - Active : boolean - InsUpdDate : date-time - Analytic_2ParentId : string - Analytic_2ValidityFrom : date-time - Analytic_2ValidityTo : date-time - Analytic_2Note : string - DeductibleShareCode : string -------------------------------------------------- 6) GET /api/analytics2 -------------------------------------------------- Description: - Returns Analytic2 data with optional search and paging. Query parameters (all optional, names as shown): - searchQuery.analytic_2Id : string - searchQuery.active : boolean - searchQuery.requestType : string - searchQuery.page : integer - searchQuery.pageSize : integer - searchQuery.recordDtModifiedFrom : date-time Response (Status 200, application/xml): - Inline model with Analytic2 fields, same as for GET /api/analytics2/{analytic2Id}: string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Note: - Swagger UI shows an inline model; real response may be a collection wrapper. -------------------------------------------------- 7) POST /api/analytics2/AddAnalytic2 -------------------------------------------------- Description: - Creates a new Analytic2 record. Body parameter: - Analytic2Class (required), content type application/xml. Body example (application/xml): string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Response (Status 200, application/xml): string string None Warning string -------------------------------------------------- 8) POST /api/analytics2/UpdateAnalytic2 -------------------------------------------------- Description: - Updates an existing Analytic2 record. Body parameter: - Analytic2Class (required), content type application/xml. Body example: - Same Analytic2 XML structure as AddAnalytic2. Response (Status 200, application/xml): None Warning string -------------------------------------------------- 9) GET /api/analytics3/{analytic3Id} -------------------------------------------------- Description: - Returns a single Analytic3 by ID (third dimension of analytics). Path parameters: - analytic3Id (string) – required. Response (Status 200, application/xml): string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Fields (from example model): - Analytic_3Id : string - Analytic_3Description : string - Active : boolean - InsUpdDate : date-time - Analytic_3ParentId : string - Analytic_3ValidityFrom : date-time - Analytic_3ValidityTo : date-time - Analytic_3Note : string - DeductibleShareCode : string -------------------------------------------------- 10) GET /api/analytics3 -------------------------------------------------- Description: - Returns Analytic3 data with optional search and paging. Query parameters (all optional, names as shown): - searchQuery.analytic_3Id : string - searchQuery.active : boolean - searchQuery.requestType : string - searchQuery.page : integer - searchQuery.pageSize : integer - searchQuery.recordDtModifiedFrom : date-time Response (Status 200, application/xml): string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Note: - Swagger UI shows an inline model; real response may be a collection wrapper. -------------------------------------------------- 11) POST /api/analytics3/AddAnalytic3 -------------------------------------------------- Description: - Creates a new Analytic3 record. Body parameter: - Analytic3Class (required), content type application/xml. Body example (application/xml): string string true 1970-01-01T00:00:00.001Z string 1970-01-01T00:00:00.001Z 1970-01-01T00:00:00.001Z string string Response (Status 200, application/xml): string string None Warning string -------------------------------------------------- 12) POST /api/analytics3/UpdateAnalytic3 -------------------------------------------------- Description: - Updates an existing Analytic3 record. Body parameter: - Analytic3Class (required), content type application/xml. Body example: - Same Analytic3 XML structure as AddAnalytic3. Response (Status 200, application/xml): None Warning string -------------------------------------------------- 13) GET /api/getAnalytic/{analyticId} -------------------------------------------------- Description: - Returns a generic Analytic entity by ID (dimension-agnostic wrapper). Path parameters: - analyticId (string) – required. Response (Status 200, application/xml): string string true 1970-01-01T00:00:00.001Z Fields (from example model): - AnalyticId : string - AnalyticDescription : string - Active : boolean - InsUpdDate : date-time -------------------------------------------------- 14) GET /api/getAnalytics -------------------------------------------------- Description: - Returns analytics using a simplified/generic Analytic model. Query parameters (all optional): - searchQuery.analyticId : string - searchQuery.active : boolean - searchQuery.requestType : string - searchQuery.page : integer - searchQuery.pageSize : integer - searchQuery.recordDtModifiedFrom : date-time Response (Status 200, application/xml): string string true 1970-01-01T00:00:00.001Z Note: - Swagger UI shows a single inline model; real response may wrap a collection of Analytic items. -------------------------------------------------- Open points / TODO -------------------------------------------------- - Confirm list response structure for GET /api/analytics1, /api/analytics2, /api/analytics3 (single item vs collection wrapper). - Identify endpoints that return or manipulate customers/parties linked to analytics (for route management). - Extract any documented error codes / ResultCode enum values. - Confirm whether AddAnalytic1/UpdateAnalytic1 and Add/UpdateAnalytic2 require additional metadata (e.g. company, tenant, user).