Skill Instructions
Base URL
{{ROSA_BASE_URL}}
Public instances only — for a secured instance, use the MCP server instead.
All endpoints return JSON. All parameters are passed as query string. All endpoints support CORS.
Common Parameters
These parameters appear on most endpoints:
| Parameter | Default | Values | Description |
|---|---|---|---|
system_type |
public_cloud |
public_cloud, btp, private_cloud, on_premise |
Target SAP system. public_cloud and btp only have Level A objects. |
clean_core_level |
A |
A, B, C, D |
Maximum level (cumulative). A = Released APIs, B = + Classic APIs, C = + Internal, D = + noAPI |
version |
latest |
latest, 2022, 2023_3, etc. |
PCE version. Only relevant for private_cloud and on_premise. |
Endpoints
GET /api/search
Search for SAP objects with fuzzy matching and relevance ranking.
Parameters:
| Parameter | Required | Default | Description |
|---|---|---|---|
query |
yes | — | Search term. Either a direct SAP object name (e.g. I_PurchaseOrderItemAPI01) or a functional object in natural language, always singular (e.g. purchase order, not purchase orders). Max 200 chars. |
system_type |
no | public_cloud |
Target system |
clean_core_level |
no | A |
Max level |
version |
no | latest |
PCE version |
object_type |
no | all | TADIR type filter: CLAS, DDLS, TABL, INTF, BDEF, etc. |
app_component |
no | all | Application component prefix: MM-PUR, FI-GL, SD-SLS, etc. |
state |
no | all | released, deprecated, classicAPI, notToBeReleased, noAPI, stable |
limit |
no | 25 | Results per page (1-100) |
offset |
no | 0 | Pagination offset |
Example:
GET /api/search?query=purchase+order&object_type=DDLS&limit=5
Response:
{
"query": "purchase order",
"system_type": "public_cloud",
"clean_core_level": "A",
"version": "latest",
"total": 42,
"offset": 0,
"limit": 5,
"hasMore": true,
"objects": [
{
"objectType": "DDLS",
"objectName": "I_PURCHASEORDER",
"state": "released",
"cleanCoreLevel": "A",
"applicationComponent": "MM-PUR-PO",
"softwareComponent": "S4CORE",
"typeDescription": "Data Definition Language Source (CDS View)",
"relevance": 100
}
]
}
GET /api/object
Get full details of a specific SAP object.
Parameters:
| Parameter | Required | Default | Description |
|---|---|---|---|
object_type |
yes | — | TADIR type (TABL, CLAS, DDLS, etc.) |
object_name |
yes | — | Exact object name (MARA, I_PRODUCT) |
system_type |
no | public_cloud |
Target system |
version |
no | latest |
PCE version |
clean_core_level |
no | A |
Max level |
Example:
GET /api/object?object_type=TABL&object_name=MARA
Response (found):
{
"found": true,
"object": {
"objectType": "TABL",
"objectName": "MARA",
"state": "deprecated",
"cleanCoreLevel": "A",
"applicationComponent": "LO-MD-MM",
"softwareComponent": "S4CORE",
"typeDescription": "Database Table / Structure",
"source": "Released APIs (Tier 1)",
"successor": {
"classification": "successor available",
"objects": [
{ "objectType": "DDLS", "objectName": "I_PRODUCT", "typeDescription": "Data Definition Language Source (CDS View)" }
]
}
},
"assessment": {
"level": "A",
"message": "DEPRECATED. Was previously released but should no longer be used. Check successor information."
}
}
Response (not found) — HTTP 404:
{
"found": false,
"message": "Object TABL ZTEST was NOT found in the Cloudification Repository..."
}
GET /api/successor
Find released successor(s) for a deprecated or non-released object.
Parameters:
| Parameter | Required | Default | Description |
|---|---|---|---|
object_name |
yes | — | Object name (case-insensitive, partial match supported) |
object_type |
no | all | TADIR type to narrow search |
system_type |
no | public_cloud |
Target system |
version |
no | latest |
PCE version |
Example:
GET /api/successor?object_name=MARA&object_type=TABL
Response:
{
"query": "MARA",
"object_type": "TABL",
"results": [
{
"objectType": "TABL",
"objectName": "MARA",
"state": "deprecated",
"cleanCoreLevel": "A",
"hasSuccessor": true,
"successor": {
"classification": "successor available",
"objects": [
{
"objectType": "DDLS",
"objectName": "I_PRODUCT",
"typeDescription": "Data Definition Language Source (CDS View)",
"state": "released",
"cleanCoreLevel": "A"
}
]
},
"assessment": "Successor(s) available."
}
]
}
GET /api/compliance
Check Clean Core compliance of a list of objects.
Parameters:
| Parameter | Required | Default | Description |
|---|---|---|---|
object_names |
yes | — | Comma-separated list. Optional type prefix: TABL:MARA,CLAS:CL_TEST |
target_level |
no | A |
A (strict) or B (pragmatic) |
system_type |
no | public_cloud |
Target system |
version |
no | latest |
PCE version |
Example:
GET /api/compliance?object_names=MARA,BSEG,I_PRODUCT&target_level=A
Response:
{
"targetLevel": "A",
"system_type": "public_cloud",
"version": "latest",
"totalChecked": 3,
"compliant": 1,
"nonCompliant": 1,
"notFound": 1,
"complianceRate": 33,
"results": [
{ "input": "MARA", "status": "compliant", "objectType": "TABL", "objectName": "MARA", "cleanCoreLevel": "A", "state": "deprecated", "successor": { "objects": [{"objectType": "DDLS", "objectName": "I_PRODUCT"}] } },
{ "input": "BSEG", "status": "not_found" },
{ "input": "I_PRODUCT", "status": "compliant", "objectType": "DDLS", "objectName": "I_PRODUCT", "cleanCoreLevel": "A", "state": "released" }
]
}
GET /api/types
List all TADIR object types with counts.
Parameters: system_type, clean_core_level, version (all optional, defaults above).
Example:
GET /api/types
Response:
{
"system_type": "public_cloud",
"clean_core_level": "A",
"totalTypes": 47,
"types": [
{ "type": "DDLS", "count": 2847, "description": "Data Definition Language Source (CDS View)", "byLevel": { "A": 2847 } },
{ "type": "CLAS", "count": 1926, "description": "ABAP Class", "byLevel": { "A": 1926 } }
]
}
GET /api/statistics
Get overall repository statistics.
Parameters: system_type, clean_core_level, version (all optional).
Example:
GET /api/statistics
Response:
{
"source": "objectReleaseInfoLatest.json",
"loadedAt": "2025-01-15T10:30:00.000Z",
"totalObjects": 9500,
"byLevel": { "A": 9500 },
"byState": { "released": 8200, "deprecated": 1300 },
"topObjectTypes": [ { "type": "DDLS", "count": 2847, "description": "Data Definition Language Source (CDS View)" } ],
"topApplicationComponents": [ { "component": "MM-PUR", "count": 450 } ],
"availableVersions": ["2022", "2022_1", "2023", "2023_1", "2023_2", "2023_3", "2024", "2025", "2025_1"]
}
GET /api/versions
List available S/4HANA PCE versions.
No parameters.
Example:
GET /api/versions
Response:
{
"total": 9,
"versions": [
{ "version": "2022", "label": "2022 base release" },
{ "version": "2022_1", "label": "2022 FPS01 / SP01" },
{ "version": "2025_1", "label": "2025 FPS01 / SP01" }
]
}
GET /health
Health check.
Response: { "status": "ok", "server": "rosa" }
Typical Use Cases
"Is BAPI_MATERIAL_GETLIST released?"
- Call
/api/object?object_type=FUGR&object_name=BAPI_MATERIAL_GETLIST - If
found === true, checkobject.stateandobject.cleanCoreLevel - If
state === "released"andcleanCoreLevel === "A"→ yes, it's released for ABAP Cloud - If
state === "deprecated"→ it was released but is now deprecated, checksuccessor - If
found === false→ the object is not in the repository (likely Level C/D), suggest searching for alternatives with/api/search
"What is the successor of MARA?"
- Call
/api/successor?object_name=MARA - Check
results[0].successor.objectsfor the replacement object(s) - If
hasSuccessor === false→ no known successor in the repository
"List all released CDS views for purchasing"
- Call
/api/search?query=purchase&object_type=DDLS&limit=50 - Results are ranked by relevance
- All returned objects are within the requested Clean Core Level
- Optionally, add
app_component=MM-PURto narrow results to a specific SAP application component
"Is my code Clean Core compliant?"
Given a list of objects used in custom code:
- Call
/api/compliance?object_names=MARA,BSEG,CL_GUI_ALV_GRID,I_PRODUCT&target_level=A - Check
complianceRatefor the overall percentage - Check individual
resultsentries —status: "non_compliant"items need remediation - Look at
successorfield for recommended replacements
"What object types exist in the repository?"
- Call
/api/types - Returns all types sorted by count, with description and level breakdown
Instructions for LLM
How to interpret results
- cleanCoreLevel: The most important field.
A= safe for ABAP Cloud.B= classic, OK for private cloud.C/D= avoid. - state:
releasedis best.deprecatedmeans use the successor.classicAPIis Level B. - relevance: 0-100 score relative to the best match. Use this to rank results when presenting to the user or agent.
- successor: When present, always mention the successor. It's the recommended replacement.
- assessment.message: Human-readable summary of the object's status. Use this directly in your response.
Search strategy
- If the user or agent gives an exact SAP name (e.g. "MARA", "CL_GUI_ALV_GRID", "I_PurchaseOrderItemAPI01"): Use
/api/objectwith the correct type, or/api/searchwith the name as query. - If the user or agent describes a functional object (e.g. "purchase order", "material", "billing document" — always singular): Use
/api/searchwith natural language. The API handles fuzzy matching and SAP abbreviation expansion. - If the user or agent asks about successors/replacements: Use
/api/successor. - If the user or agent has a list of objects to check: Use
/api/compliance.
Object types
The object_type parameter filters by TADIR type. Most commonly used:
DDLS— CDS View (most common for released APIs)CLAS— ABAP ClassINTF— ABAP InterfaceTABL— Database Table / StructureBDEF— RAP Business Object DefinitionSRVD— Service DefinitionSRVB— Service Binding (OData)FUNC— BAPIs and function modulesDTEL— Data ElementDOMA— DomainSUSO— Authorization Object
Use /api/types to get the full list of available object types with counts.
Error handling
- HTTP 400: Missing required parameter. The
messagefield explains what's needed. - HTTP 404: Object or type not found. Suggest alternatives.
- HTTP 500: Server error. Retry once, then inform the user.
"error": "no_results": The query matched nothing. Suggest broadening the search."error": "unknown_type": The object_type doesn't exist.availableTypeslists valid ones.