Web API properties

In the CSDL $metadata document, each entity type that isn't abstract has Property elements. Each Property element has the following attributes:

Attribute Description
Name The name of the property; usually the LogicalName of the column and is always lower case. One exception to this rule is Lookup properties.
Type The primitive type of the property. See Primitive types used by Dataverse

When you retrieve the $metadata document with metadata annotations you can see some Annotation elements that can be useful. For example, the following name and openrevenue properties:

<Property Name="name" Type="Edm.String" Unicode="false">
    <Annotation Term="Org.OData.Core.V1.Description" String="Type the company or business name." />
<Property Name="openrevenue" Type="Edm.Decimal" Scale="Variable">
    <Annotation Term="Org.OData.Core.V1.Description" String="Sum of open revenue against an account and its child accounts." />
    <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
    <Annotation Term="Org.OData.Core.V1.Permissions">

With the annotations in this example, you can know that the openrevenue field is read-only.

The following table describes the annotations that are returned with metadata annotations applied.

Annotation term Description
Org.OData.Core.V1.Description A description of the property
Org.OData.Core.V1.Computed Whether the property is computed; read-only because it's computed by Dataverse.
Org.OData.Core.V1.Permissions Includes the types of permissions available for the property. Only included when permissions are limited, and it always contains the value <EnumMember>Org.OData.Core.V1.PermissionType/Read</EnumMember> meaning it's read-only.


Org.OData.Core.V1.Computed and Org.OData.Core.V1.Permissions annotations are frequently found together, but not always. Either of them means the property is read-only.

Primitive types used by Dataverse

Properties for entity types that are used for business data include primitive types only. The following table describes the primitive types Dataverse uses.

Type Description
Edm.Binary Binary data. Used for file and image data.
Edm.Boolean Binary-valued logic.
Edm.Date Date without a time zone offset.
Edm.DateTimeOffset Date and time with a time zone offset, no leap seconds
Edm.Decimal Numeric values with fixed precision and scale
Edm.Double IEEE 754 binary64 floating-point number (15-17 decimal digits)
Edm.Guid 16-byte (128-bit) unique identifier
Edm.Int16 Signed 16-bit integer. Used only for certain schema EntityType properties
Edm.Int32 Signed 32-bit integer
Edm.Int64 Signed 64-bit integer
Edm.String Sequence of UTF-8 characters
This type may include the Unicode="false" facet.

When this facet exists, the string property will only contains and accepts string values with characters limited to the ASCII character set.

If no value is specified, the Unicode facet defaults to true.

Lookup properties

Some properties use the following naming convention: _<name>_value. These properties are called lookup properties. Lookup properties are computed, read-only properties that have an Edm.Guid value. You can use these lookup properties in a query filter to match all the records associated to the single record in the many-to-one relationship.

OData represents lookup columns as Single-valued navigation properties rather than properties. Dataverse provides lookup properties to simplify scenarios to retrieve data using the primary key of a related record. To change the value of a lookup property, you must change the single-valued navigation property that it represents. More information: Lookup properties

When you include lookup properties in a query, you can request annotations to be included that provide additional information about the data that is set for those underlying attributes that aren't represented by a single-valued navigation property. More information: Lookup property data

Next steps

Learn about navigation properties.

See also

Use the Dataverse Web API
Web API types and operations
Web API Service Documents
Web API EntityTypes