Skip to main content
GET
/
attributes
/
{attribute_name_or_id}
Get an attribute
curl --request GET \
  --url https://api-dev.narrative.io/attributes/{attribute_name_or_id}
{
  "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"
  ],
  "metadata": {
    "attribute_cooccurrence": [
      {
        "attribute": {
          "id": 2,
          "name": "unique_id",
          "type": "string"
        },
        "cooccurrence_pct": 0.42
      }
    ]
  }
}

Path Parameters

attribute_name_or_id
required

Either an attribute name or an attribute id Unique identifier

Query Parameters

resolve
boolean

resolve attribute(s) which is true by default.

Response

200 - application/json

OK

An attribute response that includes metadata. Can be either owned or shared based on the requesting company.

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)"
]
}
attribute_cooccurrence
object[]

Attributes that are commonly mapped to the same datasets