Skip to main content
GET
/
attributes
/
{attribute_name_or_id}
/
references
Get attribute references.
curl --request GET \
  --url https://api-dev.narrative.io/attributes/{attribute_name_or_id}/references
{
  "id": 123456789,
  "name": "price",
  "description": "The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes",
  "display_name": "Price",
  "type": "object",
  "properties": {
    "value": {
      "type": "double",
      "validations": [
        "$this.value >= 0.0"
      ]
    },
    "iso_4217_currency": {
      "type": "string",
      "enum": [
        "USD",
        "GBP",
        "JPY"
      ]
    }
  },
  "required": [
    "value",
    "iso_4217_currency"
  ],
  "company_id": 12345,
  "collaborators": {
    "view": {
      "type": "inclusion",
      "companies": [
        12345,
        67890
      ]
    },
    "map": {
      "type": "inclusion",
      "companies": [
        12345
      ]
    }
  },
  "tags": [
    "ecommerce",
    "transaction"
  ]
}

Path Parameters

attribute_name_or_id
required

Either an attribute name or an attribute id Unique identifier

Response

200 - application/json

OK

An attribute models a standardized data point available for sale on the Narrative marketplace.

Narrative automatically turns data points from provider datasets into attributes so that buyers can purchase well-formed, standardized data from any supplier on the marketplace.

The response will be one of two types:

  • AttributeOwnedResponse: When the requesting company owns the attribute (includes company_id and collaborators)
  • AttributeSharedResponse: When the requesting company does not own the attribute
type
enum<string>
required

An array with elements of any data type.

Available options:
array
company_id
integer
required

The ID of the company that owns this attribute

collaborators
object
required

Defines which companies have access to view and map this attribute

id
integer

Unique identifier for the attribute.

description
string

A description of the type of data the attribute represents, including collection methodology, assumptions, etc.

display_name
string

A public-facing descriptive name for the attribute.

name
string

An short identifier for the attribute to be used when it is referenced in validations.

Attribute names must consist of only alphanumeric characters or underscores and be < 255 characters long.

tags
string[]

List of tags associated with the attribute

validations
string[]

A raw Spark SQL expression determining whether a value for the given column is valid or not.

If more than one validation is specified then all the validation must evaluate to true for the column value to be considered valid.

If validations is not specified or empty then all rows will match the access rule.

E.g. for an attribute with the following definition:

{
"name": "unique_id",
"type": "object",
"properties": {
"identifier_value": {
"type": "string"
},
"identifier_type": {
"type": "string"
},
"timestamp": {
"type": "timestamptz"
}
},
"required": [
"value"
]
}

Valid validations include:

  • Is the ID type lowercased?
"identifier_type": {
"type": "string",
"validations": [
"lower($this.identifier_type) = $this.identifier_type"
]
}
  • Was the row collected within the last 90 days?
"timestamp": {
"type": "timestamptz",
"validations": [
"$this.timestamp > date_sub(current_date(), 90)"
]
}