openapi: 3.0.3 info: title: SAP API Management API Portal API description: >- The SAP API Management API Portal API provides RESTful endpoints built on OData principles for programmatically managing API proxies, API products, applications, developers, policies, and key-value maps within the SAP API Management platform. Authentication uses OAuth 2.0 with credentials from the service key generated for the API Portal Access Plan. The base URL is tenant-specific: https://{tenant-url}/apiportal/api/1.0/Management.svc. version: "1.0" contact: name: SAP API Management Support url: https://help.sap.com/docs/sap-api-management license: name: SAP Terms url: https://www.sap.com/about/agreements/policies/cloud-platform.html servers: - url: https://{tenantUrl}/apiportal/api/1.0/Management.svc description: SAP API Management API Portal OData service variables: tenantUrl: description: Your SAP BTP tenant-specific URL default: "your-tenant.cfapps.sap.hana.ondemand.com" security: - OAuth2: [] tags: - name: API Providers description: Backend systems that provide APIs for SAP API Management - name: API Proxies description: Managed API proxies fronting backend services - name: API Products description: Collections of APIs bundled as products for developer consumption - name: Applications description: Developer applications consuming API products - name: Developers description: Developer accounts registered in the developer portal - name: Key Value Maps description: Configuration key-value stores for policy runtime use paths: /APIProviders: get: operationId: listApiProviders summary: List API Providers description: >- Retrieve all API providers (backend systems) registered in the SAP API Management platform. Supports OData query options ($filter, $orderby, $top, $skip, $select). tags: - API Providers parameters: - name: $filter in: query schema: type: string description: OData filter expression - name: $top in: query schema: type: integer description: Maximum number of records to return - name: $skip in: query schema: type: integer description: Number of records to skip for pagination - name: $select in: query schema: type: string description: Comma-separated list of properties to return responses: '200': description: List of API providers content: application/json: schema: $ref: '#/components/schemas/APIProvidersResponse' post: operationId: createApiProvider summary: Create API Provider description: Register a new backend system as an API provider. tags: - API Providers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/APIProviderInput' responses: '201': description: API provider created content: application/json: schema: $ref: '#/components/schemas/APIProvider' /APIProviders('{name}'): get: operationId: getApiProvider summary: Get API Provider description: Retrieve a specific API provider by name. tags: - API Providers parameters: - name: name in: path required: true schema: type: string description: API provider name responses: '200': description: API provider details content: application/json: schema: $ref: '#/components/schemas/APIProvider' put: operationId: updateApiProvider summary: Update API Provider description: Update an existing API provider configuration. tags: - API Providers parameters: - name: name in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/APIProviderInput' responses: '200': description: API provider updated content: application/json: schema: $ref: '#/components/schemas/APIProvider' delete: operationId: deleteApiProvider summary: Delete API Provider description: Delete a registered API provider. tags: - API Providers parameters: - name: name in: path required: true schema: type: string responses: '204': description: API provider deleted /APIProxies: get: operationId: listApiProxies summary: List API Proxies description: >- Retrieve all API proxies available in the SAP API Management platform. Supports OData query options for filtering and pagination. tags: - API Proxies parameters: - name: $filter in: query schema: type: string - name: $top in: query schema: type: integer - name: $skip in: query schema: type: integer responses: '200': description: List of API proxies content: application/json: schema: $ref: '#/components/schemas/APIProxiesResponse' post: operationId: createApiProxy summary: Create API Proxy description: Create a new API proxy in the SAP API Management platform. tags: - API Proxies requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/APIProxyInput' responses: '201': description: API proxy created content: application/json: schema: $ref: '#/components/schemas/APIProxy' /APIProxies('{name}'): get: operationId: getApiProxy summary: Get API Proxy description: Retrieve a specific API proxy by name. tags: - API Proxies parameters: - name: name in: path required: true schema: type: string responses: '200': description: API proxy details content: application/json: schema: $ref: '#/components/schemas/APIProxy' put: operationId: updateApiProxy summary: Update API Proxy description: Update an existing API proxy configuration. tags: - API Proxies parameters: - name: name in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/APIProxyInput' responses: '200': description: API proxy updated content: application/json: schema: $ref: '#/components/schemas/APIProxy' delete: operationId: deleteApiProxy summary: Delete API Proxy description: Delete an API proxy from the platform. tags: - API Proxies parameters: - name: name in: path required: true schema: type: string responses: '204': description: API proxy deleted /APIProducts: get: operationId: listApiProducts summary: List API Products description: >- Retrieve all API products available in the developer portal. Products bundle API proxies for controlled access and monetization. tags: - API Products parameters: - name: $filter in: query schema: type: string - name: $top in: query schema: type: integer - name: $skip in: query schema: type: integer responses: '200': description: List of API products content: application/json: schema: $ref: '#/components/schemas/APIProductsResponse' post: operationId: createApiProduct summary: Create API Product description: Create a new API product bundling one or more API proxies. tags: - API Products requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/APIProductInput' responses: '201': description: API product created content: application/json: schema: $ref: '#/components/schemas/APIProduct' /APIProducts('{name}'): get: operationId: getApiProduct summary: Get API Product description: Retrieve a specific API product by name. tags: - API Products parameters: - name: name in: path required: true schema: type: string responses: '200': description: API product details content: application/json: schema: $ref: '#/components/schemas/APIProduct' delete: operationId: deleteApiProduct summary: Delete API Product description: Delete an API product from the platform. tags: - API Products parameters: - name: name in: path required: true schema: type: string responses: '204': description: API product deleted /Applications: get: operationId: listApplications summary: List Applications description: Retrieve all developer applications registered in the platform. tags: - Applications parameters: - name: $filter in: query schema: type: string - name: $top in: query schema: type: integer responses: '200': description: List of applications content: application/json: schema: $ref: '#/components/schemas/ApplicationsResponse' post: operationId: createApplication summary: Create Application description: Register a new developer application. tags: - Applications requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ApplicationInput' responses: '201': description: Application created content: application/json: schema: $ref: '#/components/schemas/Application' /KeyValueMaps: get: operationId: listKeyValueMaps summary: List Key Value Maps description: Retrieve all key-value maps available for policy use at runtime. tags: - Key Value Maps responses: '200': description: List of key-value maps content: application/json: schema: $ref: '#/components/schemas/KeyValueMapsResponse' post: operationId: createKeyValueMap summary: Create Key Value Map description: Create a new key-value map for storing configuration values. tags: - Key Value Maps requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KeyValueMapInput' responses: '201': description: Key value map created components: securitySchemes: OAuth2: type: oauth2 description: OAuth 2.0 authentication using SAP BTP service key credentials flows: clientCredentials: tokenUrl: https://{tenantUrl}/oauth/token scopes: apiportal.access: Full access to API Management portal schemas: APIProvider: type: object properties: name: type: string description: Unique API provider name description: type: string host: type: string description: Backend host URL port: type: integer path: type: string isOnPremise: type: boolean description: Whether the backend is on-premise useSSL: type: boolean createdAt: type: string format: date-time modifiedAt: type: string format: date-time APIProviderInput: type: object required: - name - host properties: name: type: string description: type: string host: type: string port: type: integer path: type: string isOnPremise: type: boolean useSSL: type: boolean APIProvidersResponse: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/APIProvider' APIProxy: type: object properties: name: type: string description: Unique API proxy name title: type: string description: type: string version: type: string basepath: type: string description: Base path for the API proxy status: type: string enum: [Active, Inactive, Draft] apiProviderId: type: string createdAt: type: string format: date-time modifiedAt: type: string format: date-time APIProxyInput: type: object required: - name - basepath properties: name: type: string title: type: string description: type: string version: type: string basepath: type: string apiProviderId: type: string APIProxiesResponse: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/APIProxy' APIProduct: type: object properties: name: type: string description: Unique API product name title: type: string description: type: string scope: type: string enum: [Public, Private, Internal] status: type: string enum: [Published, Draft] createdAt: type: string format: date-time modifiedAt: type: string format: date-time APIProductInput: type: object required: - name - title properties: name: type: string title: type: string description: type: string scope: type: string APIProductsResponse: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/APIProduct' Application: type: object properties: id: type: string name: type: string description: type: string developerId: type: string status: type: string enum: [Approved, Pending, Revoked] createdAt: type: string format: date-time ApplicationInput: type: object required: - name properties: name: type: string description: type: string developerId: type: string ApplicationsResponse: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/Application' KeyValueMap: type: object properties: name: type: string description: type: string encrypted: type: boolean scope: type: string enum: [Environment, API] KeyValueMapInput: type: object required: - name properties: name: type: string description: type: string encrypted: type: boolean KeyValueMapsResponse: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/KeyValueMap'