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).