Free 15 min initial consultation directly with our experts.
The Admin API is the interface used to manage Shopware 6 from the outside: you can read and write products, stock, orders, customers, and settings with it. It’s the standard way to connect ERP, PIM, CRM, and middleware to your store.
Anything you can do in the Shopware 6 Administration can also be done through the Admin API: create products, change stock levels, read orders, update customers, trigger status changes. The Administration itself is just a client of this API; every action in the backend is an API call.
That’s exactly why the Admin API is the standard way to integrate third-party systems. ERP, PIM, inventory management, CRM, and middleware talk to Shopware through this interface, usually in the background and without user interaction. It’s REST-based, returns JSON, and reaches every entity in the Data Abstraction Layer.
Shopware 6 provides two interfaces that are often confused:
/api/.sw-access-key, endpoints under /store-api/.Rule of thumb: what an employee does in the Administration belongs to the Admin API. What a customer does in the store belongs to the Store API. Our article on GraphQL and REST APIs in Shopware explains the differences in detail.
Access works via OAuth 2.0. For system integrations, go to Settings → System → Integrations, create an integration with its own role, and you’ll receive an access key ID and a secret access key. Use them to request a token:
POST /api/oauth/token
{
"grant_type": "client_credentials",
"client_id": "YOUR_ACCESS_KEY_ID",
"client_secret": "YOUR_SECRET_ACCESS_KEY"
}
The token is valid for ten minutes and is sent as an Authorization: Bearer header. For tools that act on behalf of a user, there’s also the password grant type with a refresh token. Grant each integration only the permissions its process needs; with ACL roles, you can restrict access down to individual entities and operations. For background on the protocol, see the entry on OAuth.
GET /api/product, POST /api/product, PATCH /api/product/{id}, DELETE /api/product/{id}, and the same for orders, customers, categories, media, and all other entities.POST /api/search/product with filters, sorting, pagination, aggregations, and associations. For example, this lets you load all orders from a given day, including line items, in a single call.POST /api/_action/sync writes many records across multiple entities in a single request. It’s the right approach for stock and price updates involving thousands of products./api/_action/order/{id}/state/…), generating documents, sending emails, triggering indexing./api/_info/ returns the version, available entities, and the OpenAPI schema; the Swagger UI at /api/_info/swagger.html documents all endpoints.In a typical ERP integration, the Admin API handles these data flows:
Instead of polling on a schedule, you can let Shopware notify you: webhooks report new orders or changed products, and the integration then loads only what has changed. Our overview of ERP and CRM integrations shows which systems can be connected this way, and our guide to Xentral and Shopware 6 gives a concrete example.
updatedAt filters or webhooks, you transfer only deltas instead of the entire dataset.indexing-behavior: use-queue-indexing, you can move indexing to the queue.The Admin API is the backbone of every Shopware integration. Once you understand its logic, with OAuth 2.0, search with criteria, the Sync API, and the state machine, you can reliably connect ERP, PIM, and CRM. For custom integrations and plugins that extend the Admin API with your own endpoints, we support you with Shopware plugin development.