curl --request GET \
--url https://api-dev.narrative.io/attributes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-dev.narrative.io/attributes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-dev.narrative.io/attributes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-dev.narrative.io/attributes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.narrative.io/attributes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-dev.narrative.io/attributes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.narrative.io/attributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"prev_page": null,
"current_page": 1,
"next_page": null,
"total_records": 1,
"total_pages": 1,
"records": [
{
"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": {
"order": 0,
"display_name": "Value",
"type": "double",
"validations": [
"$this.value >= 0.0"
]
},
"iso_4217_currency": {
"order": 1,
"display_name": "Currency",
"type": "string",
"enum": [
"USD",
"GBP",
"JPY"
]
}
},
"tags": [
"ecommerce",
"transaction"
],
"required": [
"value",
"iso_4217_currency"
]
}
]
}Get attributes
Return all attributes.
Authentication is optional. Anonymous callers get the shared view of every attribute. With a valid
bearer token, attributes owned by the caller’s company are returned as AttributeOwnedResponse and
everything else as AttributeSharedResponse. A token that is present but invalid is rejected
rather than falling back to the anonymous view.
When neither page nor per_page is supplied, every record is returned in a single page.
curl --request GET \
--url https://api-dev.narrative.io/attributes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-dev.narrative.io/attributes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-dev.narrative.io/attributes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-dev.narrative.io/attributes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.narrative.io/attributes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-dev.narrative.io/attributes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.narrative.io/attributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"prev_page": null,
"current_page": 1,
"next_page": null,
"total_records": 1,
"total_pages": 1,
"records": [
{
"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": {
"order": 0,
"display_name": "Value",
"type": "double",
"validations": [
"$this.value >= 0.0"
]
},
"iso_4217_currency": {
"order": 1,
"display_name": "Currency",
"type": "string",
"enum": [
"USD",
"GBP",
"JPY"
]
}
},
"tags": [
"ecommerce",
"transaction"
],
"required": [
"value",
"iso_4217_currency"
]
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Number of page. Stars from the first (1) page.
Number of records to return.
When true (the default), $ref type references are resolved and the referenced attribute's type
definition is returned in their place. When false, the raw $ref node is returned as stored.
Free-text search term. When provided, attributes are ranked by their relevance to the search term.
Optional minimum relevance score, in the half-open interval (0, 1]. By default no threshold is
applied and all matches are returned, ranked by relevance. Supply min_score to restrict the
results to attributes scoring at or above the given value; below-threshold attributes are then
excluded from both the results and the total count. Can only be supplied together with q;
supplying it without q returns 400.
x <= 1Response
OK
One page of attributes. When the request carries no paging parameters, every record is returned in a single page.
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
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
- Option 17
- Option 18
Show child attributes
Show child attributes
{
"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",
"company_id": 12345,
"collaborators": {
"view": {
"type": "inclusion",
"company_ids": [12345, 67890]
},
"map": {
"type": "inclusion",
"company_ids": [12345]
}
},
"tags": ["ecommerce", "transaction"]
}
The number of requested page.
1
Total amount of accessible Access Rules
15000
Total amount of pages.
10
The number of the previous page, or null on the first page. Can also refer to the latest existing page if a page beyond the last one was requested.
1
The number of the next page, or null on the last page.
42
Was this page helpful?

