# Web API

The Smartstore Web API enables direct access to online store data. It is based on the latest technologies that Microsoft offers for web-based data using the ASP.NET Core Web API and the OData provider. This documentation provides an overview of how to create an API client, also known as an API consumer. It uses C# code, but you can build your consumer in any common programming language. Because OData is a standardized protocol, there are many frameworks and toolkits available for different platforms.

The **ASP.NET Core Web API** is a framework for building Web APIs on top of the ASP.NET Core framework. It uses the HTTP protocol to communicate between the shop and clients to have data access.

The **Open Data Protocol** ([OData](https://en.wikipedia.org/wiki/Open_Data_Protocol)) is a standardized Web protocol that provides a consistent way to expose, structure, query, and manipulate data using REST practices. OData also provides a consistent way to represent metadata about the data, allowing clients to learn more about the type system, relationships, and structure of the data.

The Web API is primarily used to exchange raw data. In addition, it contains service functions and methods similar to those in the store backend.

{% hint style="info" %}
If different data is exchanged on a large scale or requires special processing, it may be more flexible to develop a custom module. The module acts as middleware between Smartstore and your application and can access all service functions of the Smartstore core, where the API can only ever provide a small subset.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.smartstore.com/framework/web-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
