The **Optimizely Content Definitions API** is a REST API that lets system integrators and external clients remotely manage definitions, such as [Content types](🔗), [Property Groups](🔗), and [Property Data Types](🔗) without deploying code to the Optimizely application or using the admin user interface. Changes made through this API are reflected in the admin user interface and vice versa.
All settings available in the admin UI are not available through the API yet. For example, you cannot not manage websites, languages, or translations.
Since changes could be made to the same content types but from different sources, there may be conflicts that could affect existing content. To reduce the risk of conflicts, you should add version information to the content types. This can be done per content type or for all content types. See [Semantic versioning](🔗).
Install the _EPiServer.ContentDefinitionsApi_ NuGet package from the [NuGet feed](🔗).
The Optimizely Content Definitions API has the `
ContentDefinitionsApiOptions` (located in the `
EPiServer.ContentDefinitionsApi` namespace) class where you can configure the API. In _startup.cs_ enable and configure the API with following code:
The Content Definitions API uses claims-based authorization, and we recommend using OpenID Connect and Bearer Tokens (JWT) to authorize the requests, see [API authentication](🔗).
By default, the API requires the scope claim epi\_content\_definitions but you can configure it to use any scope or claim type. `
ContentDefinitionsApiOptions` contains the setting `
AllowedScopes` and `
ScopeClaimType` where you can specify which scopes are required to call this API and what the scope claim type name to use.
## Additional resources
[Content types](🔗) – Contains detailed descriptions and instructions on how to communicate with the API and its different endpoints for managing content types.
[Content Definitions Manifest](🔗) – Contains detailed descriptions and instructions on how to communicate with the API and its different endpoints for content definitions manifest.
[Content Definitions REST API 3.4.0 reference](🔗) and [Content Definitions REST API 3.0.0 reference](🔗)– (OpenAPI/Swagger) documentation. Automatically generated documentation from the source code and contains descriptions of the endpoints and models, used for reference purposes.