API docs

Using custom metadata

There are 2 primary types of custom metadata:

  1. Free text values

  2. Constrained values

Free text values allow any valid, non-blank string.

Constrained values, on the other hand, have a predetermined set of values that can be used. These values are defined during the implementation of your organization’s custom metadata.

All of the examples above have a metadata profile with 2 custom properties, for example:

"properties": {
    "dataCollectionMechanism": "Python script from social media API",
    "dataCollectionLanguages": [

"dataCollectionMechanism" is a free text field, and "dataCollectionLanguages" is a constrained value field that accepts multiple values.

The valid available options for"dataCollectionLanguages", for this example, are:

["python", "r", "java", "javascript", "julia", "bash", "c"]

Sending the example payload in a PUT/PATCH/POST API call would set or override any previously set value with the value from the payload, which would be visible to endusers of that dataset in both the API and on data.world.