Skip to content

Commerce Admin REST API Reference

advanced
📜Corecommerce

The Commerce Admin REST API exposes catalog, order, and customer management through HTTP endpoints. All endpoints require authentication and return JSON responses.

`https://{site-domain}/episerverapi/commerce/`

All requests require a Bearer token in the Authorization header.

`Authorization: Bearer {access_token}`

Obtain tokens via the /episerverapi/token endpoint using client credentials.

Returns catalog entries with optional filtering.

Query parameters

NameTypeRequiredDescription
topintNoNumber of records to return (default: 50)
skipintNoNumber of records to skip
catalogNamestringNoFilter by catalog name
nodeCodestringNoFilter by parent node code

Response: 200 OK

{
"totalCount": 150,
"entries": [
{
"code": "SHIRT-001",
"name": "Classic Oxford Shirt",
"catalogName": "Fashion",
"metaClassName": "FashionProduct"
}
]
}

Returns a single entry by code.

Path parameters

NameTypeDescription
codestringCatalog entry code

Response: 200 OK or 404 Not Found

Creates a new catalog entry.

Request body

FieldTypeRequiredDescription
codestringYesUnique entry code
namestringYesDisplay name
catalogNamestringYesParent catalog name
metaClassNamestringYesContent type name
entryTypestringYesProduct, Variation, Package, Bundle
Create an entry via REST
csharp
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
  new AuthenticationHeaderValue("Bearer", accessToken);

var entry = new
{
  code = "SHIRT-002",
  name = "Slim Fit Shirt",
  catalogName = "Fashion",
  metaClassName = "FashionProduct",
  entryType = "Product"
};

var response = await client.PostAsJsonAsync(
  "https://mysite.com/episerverapi/commerce/catalog/entries",
  entry);

Updates an existing catalog entry.

Response codes

CodeDescription
200Updated successfully
404Entry not found
400Validation error

Deletes a catalog entry.

Response codes

CodeDescription
200Deleted successfully
404Entry not found

Returns orders with optional filtering.

Query parameters

NameTypeRequiredDescription
topintNoNumber of records to return
skipintNoNumber of records to skip
modifiedFromDateTimeNoFilter by modification date
statusstringNoFilter by order status

Response: 200 OK

Returns a single order by ID.

Path parameters

NameTypeDescription
idintOrder group ID

Response: 200 OK or 404 Not Found

Updates the status of an order.

Request body

FieldTypeRequiredDescription
statusstringYesNew order status
Update order status via REST
csharp
var statusUpdate = new { status = "Completed" };
var response = await client.PutAsJsonAsync(
  $"https://mysite.com/episerverapi/commerce/orders/{orderId}/status",
  statusUpdate);

Returns customer contacts with optional search.

Query parameters

NameTypeRequiredDescription
topintNoNumber of records to return
skipintNoNumber of records to skip
searchstringNoSearch by name or email

Returns a single customer contact.

Creates a new customer contact.

Request body

FieldTypeRequiredDescription
firstNamestringYesFirst name
lastNamestringYesLast name
emailstringYesEmail address

Returns organizations.

Creates a new organization.

Request body

FieldTypeRequiredDescription
namestringYesOrganization name

All error responses follow a consistent format:

{
"statusCode": 400,
"message": "Validation failed",
"errors": [
{ "field": "code", "message": "Entry code is required." }
]
}
CodeDescription
200Success
201Created
400Bad request — validation errors
401Unauthorized — missing or invalid token
403Forbidden — insufficient permissions
404Not found
409Conflict — duplicate entry code
500Internal server error
LimitValue
Requests per minute600
Max page size (top)100