ServiceServicetypeA BTP service you subscribe to and bind, rather than install. It has plans and regions, not versions, and may deliver a product that lives outside the atlas.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →

SAP Destination service

Named, credentialed addresses of other systems, resolved at runtime — so an application holds no URL and no secret of its own, and the same code reaches a different system in every landscape.

Where it sits

Lives in
Provides
DestinationsCAPBTPDestinationscapabilityReaching a system that is not yours — an S/4HANA tenant, an on-premise service, a third-party API — without the address, the credentials or the tunnel being written into the application. The destination is the indirection, and the reason an endpoint can move without a redeploy.
Serves
Designs
Agentic AI & AI AgentsAgentic AI & AI Agentsreference architecturedestination management for SAP cloud solutions, third-party applications and on-premise systemsAgentic Engineering for SAP BTP ExtensionsAgentic Engineering for SAP BTP Extensionsreference architectureConnectivityDesigning Event-Driven ApplicationsDesigning Event-Driven Applicationsreference architecturebackend destination detailsGenerative AI on SAP BTPGenerative AI on SAP BTPreference architecturebackend destination detailsIntegrating and Extending JouleIntegrating and Extending Joulereference architecturecalls the Joule Function in the name of the userMultitenant SaaS Application using CAPMultitenant SaaS Application using CAPreference architectureconnections to SAP and third-party systemsSAP Document AISAP Document AIreference architectureoutbound integration

Before choosing this

Conditions

LicenceSAP Developer License Agreement 3.2 CAP§ 1from DestinationsA destination used by a covered CAP application sends SAP product data to a non-SAP product rather than only addressing a remote endpoint.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.

A destination is configuration, not the deciding boundary. The licence becomes material when the resulting data flow is extraction into a non-SAP product, so the target and purpose need review.

SAP Developer License Agreement 3.2 CAP →

What it declares

Every artifact

Type
Service
Origin
By SAP

As a service

Plans
1
Regions
46
Support component
BC-CP-DEST-CFBC-CP-DEST-CF-CLIBSBC-CP-DEST-CF-TOOLS

Connections40

SAP Destination service connectionsSAP Destination servicePROVIDES→ provides1provides authoredDestinationsUSED BY← connected from5connected from derived Reading the configuration of the destination a route forwards to, where the router's own environment does not define it. Through: inverted from its connects edge @sap/approuter 23.0.0 — README, Destination service: https://unpkg.com/@sap/approuter@23.0.0/README.md@sap/approuterconnected from derived Reads the authentication, the proxy settings and the baseURL of the named destination, which is why the call site writes a relative URL. Through: inverted from its connects edge CDS-SCP-API Node Module — README, CDS-SCP-API Config Settings: https://raw.githubusercontent.com/sapmentors/cds-scp-api/master/README.md@sapmentors/cds-scp-apiconnected from derived If: deployed as a Cloud Foundry app on SAP BTP has the Destination service forward the MCP user's identity to the SAP system it reaches through a managed destination Through: inverted from its connects edge arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1 arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1 arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1arc-1ifconnected from derived If: run in BTP mode, where `CALM_DESTINATION_NAME` names the destination entry the server looks up at runtime reads the OAuth2 client-credentials and the Cloud ALM API base out of a destination the deployment binds, instead of holding them in its own environment Through: inverted from its connects edge consetto/calmcp — README, Deploy to SAP BTP Cloud Foundry: https://raw.githubusercontent.com/consetto/calmcp/main/README.md consetto/calmcp — README, Configure the destination: https://raw.githubusercontent.com/consetto/calmcp/main/README.mdcalmcpifconnected from derived reaches customer systems for outbound integration Through: inverted from its connects edge RA0030 readme.md in SAP/architecture-center: https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/readme.mdSAP Document AI← needed by12needed by derived Holds the endpoint and the credentials the module resolves by name before it issues the request. Through: inverted from its requires edge CDS-SCP-API Node Module — README, what the module provides: https://raw.githubusercontent.com/sapmentors/cds-scp-api/master/README.md@sapmentors/cds-scp-apineeded by derived one destination per backend, which both resolves the backend's URL and carries the `OAuth2JWTBearer` exchange that produces the per-user token Through: inverted from its requires edge arc-mcp/mcp-hub — README: https://raw.githubusercontent.com/arc-mcp/mcp-hub/main/README.md arc-mcp/mcp-hub — README: https://raw.githubusercontent.com/arc-mcp/mcp-hub/main/README.mdarc-mcp-hubneeded by derived In production the imported products service is reached by the name of a destination rather than an address, and the MTA binds a destination instance on the lite plan to the service module. Through: inverted from its requires edge miyasuta/auth-samples — salesorders/package.json: https://raw.githubusercontent.com/miyasuta/auth-samples/master/salesorders/package.json miyasuta/auth-samples — salesorders/mta.yaml: https://raw.githubusercontent.com/miyasuta/auth-samples/master/salesorders/mta.yamlauth-samplesneeded by derived The source and the target subaccount are each reached through a destination that points at the Authorization and Trust Management API and carries the client credentials of that subaccount's service key. Through: inverted from its requires edge Transporting role collections between BTP subaccounts Part1 : Custom tool — SAP Community: https://community.sap.com/t5/technology-blog-posts-by-members/transporting-role-collections-between-btp-subaccounts-part1-custom-tool/ba-p/13538208auth-transportneeded by derived The private hostname, the credentials and the PrivateLink proxy type are held in a destination named az-destinations, which the deployed application and the local hybrid profile both bind. Through: inverted from its requires edge MartinPankraz/az-private-linky-cap — README, Getting Started from SAP Business Application Studio: https://github.com/MartinPankraz/az-private-linky-capaz-private-linky-capneeded by derived the named address of the Cloud Foundry V3 API, `CF_API`, and the OAuth2 token handling behind every call Through: inverted from its requires edge BTP CF MCP Server — README: https://github.com/lemaiwo/btp-cf-mcp-server BTP CF MCP Server — README: https://github.com/lemaiwo/btp-cf-mcp-serverBTP CF MCP Serverneeded by derived the deployed MCP server URLs the agent's client is pointed at in production, created as instance destinations by the MTA Through: inverted from its requires edge Agentic AI on BTP: a Single Agent with LangGraph — SAP Community, the client side: https://community.sap.com/t5/technology-blog-posts-by-members/agentic-ai-on-btp-a-single-agent-with-langgraph/ba-p/14388025 Agentic AI on BTP: a Single Agent with LangGraph — SAP Community, build and deploy: https://community.sap.com/t5/technology-blog-posts-by-members/agentic-ai-on-btp-a-single-agent-with-langgraph/ba-p/14388025btp-agentneeded by derived How the remote service is reached once deployed: the project's own requires block names a destination instead of an address, and the repository does not set that destination up. Through: inverted from its requires edge miyasuta/cap-external-northwind — package.json, cds.requires: https://raw.githubusercontent.com/miyasuta/cap-external-northwind/master/package.jsoncap-external-northwindneeded by derived Named addresses for the model and the SDM API, which the project configures by destination name rather than by URL. Through: inverted from its requires edge Reports Assistant with SAP Document Management — README, Setup: https://raw.githubusercontent.com/mi8y/cap-agents-addons/main/examples/cap-agents-sdm-backend/README.md Reports Assistant with SAP Document Management — README, Setup: https://raw.githubusercontent.com/mi8y/cap-agents-addons/main/examples/cap-agents-sdm-backend/README.mdReports Assistant with SAP DocumentManagementneeded by derived a bound service instance the deployment needs, on the lite plan Through: inverted from its requires edge SAP-samples/btp-ai-core-consumption-monitor — README, Requirements: https://github.com/SAP-samples/btp-ai-core-consumption-monitorSAP-samples/btp-ai-core-consumption-monitorneeded by derived the runtime destination the Work Zone content package is mapped to Through: inverted from its requires edge SAP-samples/btp-resource-consumption-monitor — README, Requirements: https://github.com/SAP-samples/btp-resource-consumption-monitorSAP-samples/btp-resource-consumption-monitorneeded by derived a [SAP BTP](artifact:btp-destination) destination through which Joule reaches the deployed agent Through: inverted from its requires edge joule-a2a-agent-toolkit README: https://github.com/sap-samples/joule-a2a-agent-toolkitSAP-samples/joule-a2a-agent-toolkit← optionally used by9optionally used by derived If: the `./btp` entrypoint is used, which is the per-user principal propagation path; a server that only verifies bearer tokens never reaches it the destination the entrypoint looks up with the verified user JWT to obtain the per-user tokens Through: inverted from its requires edge arc-mcp/xsuaa-auth — README: https://raw.githubusercontent.com/arc-mcp/xsuaa-auth/main/README.md@arc-mcp/xsuaa-authifoptionally used by derived If: The graph kind is configured for Microsoft Graph. Carries the OAuth2 client credentials the graph provider authenticates Microsoft Graph with, configured as a destination in the BTP subaccount. Through: inverted from its requires edge @expertum/cap-email-plugin — README: https://raw.githubusercontent.com/expertum-net/cap-email-plugin/main/README.md @expertum/cap-email-plugin — README: https://raw.githubusercontent.com/expertum-net/cap-email-plugin/main/README.md@expertum/cap-email-pluginifoptionally used by derived If: the `10` AI samples run on an ABAP Cloud system On ABAP Cloud the `10` package's transport class resolves a destination of the BTP subaccount through `cl_http_destination_provider=>create_by_cloud_destination`, with the communication arrangement for `SAP_COM_0276` in the ABAP environment. Through: inverted from its requires edge abap2UI5/samples-stack — src/10 README, What you need: https://raw.githubusercontent.com/abap2UI5/samples-stack/main/src/10/README.mdabap2UI5/samples-stackifoptionally used by derived If: run in BTP mode, which the MTA descriptor and `cf push` both set up the destination service instance the deploy creates and binds, which holds the destination entry the server resolves Through: inverted from its requires edge consetto/calmcp — README, Using the MTA descriptor: https://raw.githubusercontent.com/consetto/calmcp/main/README.mdcalmcpifoptionally used by derived If: A cloud storage backend is selected. Through: inverted from its requires edge plus — README: https://www.npmjs.com/package/cap-attachments-pluscap-attachments-plusifoptionally used by derived If: n8n.destination is configured, for production deployments behind a proxy instead of a plain base URL. Through: inverted from its requires edge cap-java/cds-feature-n8n — README: https://raw.githubusercontent.com/cap-java/cds-feature-n8n/c919bcb6f34d78c6831f0e48274949b721960284/README.mdcom.sap.cds:cds-feature-n8nifoptionally used by derived If: The remote service is configured with a destination rather than a service binding. Through: inverted from its requires edge CAP documentation — Java: Remote Services: https://cap.cloud.sap/docs/java/cqn-services/remote-services#destination-based-scenarioscom.sap.cds:cds-feature-remote-odataifoptionally used by derived If: deployed to SAP BTP Cloud Foundry, the production path the destination that carries the principal propagation from the caller to the ABAP system Through: inverted from its requires edge ClementRingot/LISA — README, Prerequisites: https://raw.githubusercontent.com/ClementRingot/LISA/main/README.md ClementRingot/LISA — README, Part 2: https://raw.githubusercontent.com/ClementRingot/LISA/main/README.mdLISAifoptionally used by derived If: The dm-custom-api in-app service extension sample is deployed. The sample service reaches the product's APIs through a named destination, SAP_DMC_DEFAULT_SERVICE_KEY, rather than a URL of its own. Through: inverted from its requires edge Digital Manufacturing Extension: Custom protected BTP service calling DM APIs: https://raw.githubusercontent.com/SAP-samples/digital-manufacturing-extension-samples/main/dm-inapp-service-extensions/dm-custom-api/README.mdSAP-samples/digital-manufacturing-extension-samplesif← used by13used by derived Through: inverted from its requires edge@cap-js/n8nused by derived Through: inverted from its requires edge@salvatorela/cap-plugin-adobe-formsused by derived Through: inverted from its requires edge@sap-cloud-sdk/connectivityused by derived Through: inverted from its requires edge@sap-cloud-sdk/http-clientused by derived Reading the destination a route forwards to, where that configuration is not written into the router's own environment. Through: inverted from its requires edge @sap/approuter 23.0.0 — README, destination configuration: https://unpkg.com/@sap/approuter@23.0.0/README.md@sap/approuterused by derived Through: inverted from its requires edgecap-oauth-destinationused by derived The production profile replaces the OpenAI url with a destination named `openai`, so once deployed the address comes from the destination rather than from the configuration. Through: inverted from its requires edge miyasuta/cap-openai — package.json: https://raw.githubusercontent.com/miyasuta/cap-openai/main/package.jsoncap-openaiused by derived The generated client is constructed on a destination read at runtime, so the endpoint and the credentials of the API it calls come from there. Through: inverted from its requires edge miyasuta/cap-openapi — AuthorizationServiceHandler.java: https://raw.githubusercontent.com/miyasuta/cap-openapi/main/srv/src/main/java/customer/cap_openapi/handlers/AuthorizationServiceHandler.javacap-openapiused by derived The remote service's credentials name a destination rather than an address, and the MTA binds a destination instance to the service module. Through: inverted from its requires edge miyasuta/cap-principal-propagation — package.json: https://raw.githubusercontent.com/miyasuta/cap-principal-propagation/main/package.jsoncap-principal-propagationused by derived The destination service holds both the instance destinations the content module creates and the subaccount destination that points at the content descriptor. Through: inverted from its requires edge miyasuta/cap-reuse-html5 — mta.yaml, resources: https://raw.githubusercontent.com/miyasuta/cap-reuse-html5/main/mta.yamlcap-reuse-html5used by derived The production profile reaches the ABAP system through a destination of the same name, and the MTA binds a destination instance to the service module. Through: inverted from its requires edge miyasuta/cap-rfc — package.json: https://raw.githubusercontent.com/miyasuta/cap-rfc/main/package.jsoncap-rfcused by derived Both routes from the app to the CAP service are destinations: one created as an instance destination from the xsuaa service key, one in the destination service's own init_data. Through: inverted from its requires edge miyasuta/cap-ui — mta.yaml, resources: https://raw.githubusercontent.com/miyasuta/cap-ui/main/mta.yamlcap-uiused by derived how the pre-built Build actions reach the GTT system; the session provides two destinations by name. Through: inverted from its requires edge SAP-samples/teched2025-AI163 — README, Requirements & Prerequisites, Actions & Destinations: https://github.com/SAP-samples/teched2025-AI163teched2025-AI163

Learn more2

Readings
  1. The ECC-to-CAP Starter KitSebastiano Marchesini, YouTube — SAP Developers playlists
  2. Secure Service Consumption Across HyperscalersSAP Architecture Center, SAP Architecture Center
Destinations
  1. com.sap.cds:cds-feature-remote-odataRemote Services for consuming OData V2 and V4 APIs in CAP Java
  2. com.sap.cds:cds-integration-cloud-sdkSAP Cloud SDK integration for remote REST services in CAP Java
  3. capire/s4Prebuilt SAP S/4HANA integration package for CAP projects
  4. cdseDestination resolution and axios calls from CAP configuration
  5. @sap/cdsCAP Node.js runtime
  6. @sap-cloud-sdk/connectivityDestination lookup and connectivity proxy for the Cloud SDK
  7. @sap-cloud-sdk/http-clientHTTP client carrying a destination's credentials
  8. @sap-cloud-sdk/odata-commonShared machinery under the Cloud SDK's OData and OpenAPI clients
  9. @sap-cloud-sdk/openapiGenerated OpenAPI clients for the Cloud SDK
  10. @sap-cloud-sdk/resilienceTimeouts, retries and circuit breaking around remote calls
  11. @sap-cloud-sdk/utilGeneral utilities shared across the Cloud SDK packages
  12. @sapmentors/cds-scp-apiNode module for CAP calling external APIs through a destination

Details

Sources1
SAP-samples/btp-service-metadatadiscovered here, btp-service-metadatachecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaSAP-samples/btp-service-metadata · btp-service-metadata
first seen in the atlas
ecosystem and domainbtp, integration-and-messaging
History in the atlas2
  1. The destination is resolved by the router or the service, not by UI5 code, so the decision is made on the CAP and BTP doors.
  2. First seen.
For your agent
Ref
artifact:btp-destination
JSON
/artifacts/btp-destination.json
MCP
Connecting an agent