---
title: "Marketing Operations API"
slug: "marketing-operations-api"
abstract: ""
---
# Marketing Operations API

The Marketing Operations API encompasses a set of [definition managers](https://doc.sitecore.com/xp/en/developers/103/sitecore-experience-platform/definition-managers.html "Definition managers") and [taxonomy managers](https://doc.sitecore.com/xp/en/developers/103/sitecore-experience-platform/taxonomy-managers.html "Taxonomy managers").

## Repositories

All definition managers and taxonomy managers are backed by a repository. Repositories are wired up in configuration, and are defined per definition or taxonomy type. In the following example, goals are configured to use an item-based repository:

```xml
<register
    serviceType="Sitecore.Marketing.Definitions.Goals.Data.IGoalDefinitionRepository, Sitecore.Marketing"
    implementationType="Sitecore.Marketing.Definitions.Goals.Data.ItemDb.GoalDefinitionItemRepository, Sitecore.Marketing.xMgmt"
    lifetime="Singleton" />

```

> [!important]
> Repositories are configured once per server. This means that a server that combines Processing and Content Management uses an item-based repository only - even though definitions are still deployed to the Reference Data Service.

### Item-based repositories

Item-based repositories use Sitecore’s content management databases. If an item-based repository is in use for goals, calling `Get()` will return the goal definition from the master database. Content Management servers used item-based repositories.

> [!important]
> In an XP/XM Single environment (such as a local development environment), item-based repositories are used by default. This means that even the processing pipeline uses the item-based version of a definition or taxonomy, not the version stored in the Reference Data Service - even though part of the activation process is to deploy the definition to the Reference Data Service.

### Reference Data Service repositories

Reference Data Service repositories use the Reference Data Service. If such a repository is in use for goals, calling `Get()` will return the goal definition from the Reference Data Service - not the master database.

> [!warning]
> Do not change definitions and taxonomies directly in the Reference Data Service on a server that uses repositories backed by the Reference Data Service. This is difficult to do, given that processing only exposes read-only definition and taxonomy managers, but it is technically possible.