curl --request PUT \
--url https://api-dev.narrative.io/data-stream/{data_stream_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "f94e8803-fc03-4c3e-a3fc-c3ffe3993788",
"company_id": 100,
"name": "best data stream name",
"slug": "this-is-a-slug",
"content": {
"description": "Fabulous Data Stream even better than anything out there!",
"icon": "https://some.icon.png",
"sections": [
{
"title": "some title",
"description": "some description",
"image": "some-image"
},
{
"whatever": "whatever json structure FE would like to have here.",
"free_form": "json here"
}
]
},
"tags": [
"tag1",
"tag2"
],
"category": "categoryA",
"offers": [
{
"id": "16310512-a8fb-4ce8-aec3-573693067df9",
"channel": "data_streams_market",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 70000
},
"shops": null
},
{
"id": "d7542ec5-558f-4e98-9ff6-e049b24798fa",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 50000
},
"shops": null
},
{
"id": "5d52d8d8-b683-4ef4-9220-31347dc2237f",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "max_price_per_record",
"micro_cents_usd": 30000
},
"shops": [
"only.on.tld.com"
]
}
],
"data_rules": {
"column_sets": [
{
"dataset_id": 99999,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
}
]
}
],
"attributes": [
{
"attribute_id": 123,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
},
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": true
}
],
"optional": true
},
{
"attribute_id": 321,
"fields": [
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": false
}
],
"optional": false
}
],
"deduplication": {
"period": "P60D",
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9",
"col9.foo.bar"
]
}
]
},
"frequency_filter": {
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9.foo.bar"
]
}
],
"min_inclusive": 2,
"max_inclusive": 5
}
},
"auth_rules": {
"company_constraint": {
"type": "inclusion",
"company_ids": [
160,
1701
]
}
},
"created_by": 5000,
"created_at": "2021-06-29T10:58:36.726Z",
"updated_at": "2021-06-29T10:58:36.726Z",
"datasets": null
}
'{
"id": "f94e8803-fc03-4c3e-a3fc-c3ffe3993788",
"company_id": 100,
"name": "best data stream name",
"slug": "this-is-a-slug",
"content": {
"description": "Fabulous Data Stream even better than anything out there!",
"icon": "https://some.icon.png",
"sections": [
{
"title": "some title",
"description": "some description",
"image": "some-image"
},
{
"whatever": "whatever json structure FE would like to have here.",
"free_form": "json here"
}
]
},
"tags": [
"tag1",
"tag2"
],
"category": "categoryA",
"offers": [
{
"id": "16310512-a8fb-4ce8-aec3-573693067df9",
"channel": "data_streams_market",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 70000
},
"shops": null
},
{
"id": "d7542ec5-558f-4e98-9ff6-e049b24798fa",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 50000
},
"shops": null
},
{
"id": "5d52d8d8-b683-4ef4-9220-31347dc2237f",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "max_price_per_record",
"micro_cents_usd": 30000
},
"shops": [
"only.on.tld.com"
]
}
],
"data_rules": {
"column_sets": [
{
"dataset_id": 99999,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
}
]
}
],
"attributes": [
{
"attribute_id": 123,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
},
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": true
}
],
"optional": true
},
{
"attribute_id": 321,
"fields": [
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": false
}
],
"optional": false
}
],
"deduplication": {
"period": "P60D",
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9",
"col9.foo.bar"
]
}
]
},
"frequency_filter": {
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9.foo.bar"
]
}
],
"min_inclusive": 2,
"max_inclusive": 5
}
},
"auth_rules": {
"company_constraint": {
"type": "inclusion",
"company_ids": [
160,
1701
]
}
},
"created_by": 5000,
"created_at": "2021-06-29T10:58:36.726Z",
"updated_at": "2021-06-29T10:58:36.726Z",
"datasets": null
}Update a new data-stream.
The main idea: get a data-stream document/resource, after creation or accessing by id, then update the document and PUT it as it is.
Of course certain things aren’t updateable and are ignored, for instance identifiers already established (like DS id) and metadata like creation/update dates and who created/updated the entity.
Things that can be updated
Note: nested structures like content etc. are changed as complete structures, hence care needs to be taken to include unchanged data at as the same time as the data being changed so as not to over-write the rest of it.
Any validations applicable on creation time also apply on updates.
Only a user belonging to the company can update a data-stream.
curl --request PUT \
--url https://api-dev.narrative.io/data-stream/{data_stream_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "f94e8803-fc03-4c3e-a3fc-c3ffe3993788",
"company_id": 100,
"name": "best data stream name",
"slug": "this-is-a-slug",
"content": {
"description": "Fabulous Data Stream even better than anything out there!",
"icon": "https://some.icon.png",
"sections": [
{
"title": "some title",
"description": "some description",
"image": "some-image"
},
{
"whatever": "whatever json structure FE would like to have here.",
"free_form": "json here"
}
]
},
"tags": [
"tag1",
"tag2"
],
"category": "categoryA",
"offers": [
{
"id": "16310512-a8fb-4ce8-aec3-573693067df9",
"channel": "data_streams_market",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 70000
},
"shops": null
},
{
"id": "d7542ec5-558f-4e98-9ff6-e049b24798fa",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 50000
},
"shops": null
},
{
"id": "5d52d8d8-b683-4ef4-9220-31347dc2237f",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "max_price_per_record",
"micro_cents_usd": 30000
},
"shops": [
"only.on.tld.com"
]
}
],
"data_rules": {
"column_sets": [
{
"dataset_id": 99999,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
}
]
}
],
"attributes": [
{
"attribute_id": 123,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
},
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": true
}
],
"optional": true
},
{
"attribute_id": 321,
"fields": [
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": false
}
],
"optional": false
}
],
"deduplication": {
"period": "P60D",
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9",
"col9.foo.bar"
]
}
]
},
"frequency_filter": {
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9.foo.bar"
]
}
],
"min_inclusive": 2,
"max_inclusive": 5
}
},
"auth_rules": {
"company_constraint": {
"type": "inclusion",
"company_ids": [
160,
1701
]
}
},
"created_by": 5000,
"created_at": "2021-06-29T10:58:36.726Z",
"updated_at": "2021-06-29T10:58:36.726Z",
"datasets": null
}
'{
"id": "f94e8803-fc03-4c3e-a3fc-c3ffe3993788",
"company_id": 100,
"name": "best data stream name",
"slug": "this-is-a-slug",
"content": {
"description": "Fabulous Data Stream even better than anything out there!",
"icon": "https://some.icon.png",
"sections": [
{
"title": "some title",
"description": "some description",
"image": "some-image"
},
{
"whatever": "whatever json structure FE would like to have here.",
"free_form": "json here"
}
]
},
"tags": [
"tag1",
"tag2"
],
"category": "categoryA",
"offers": [
{
"id": "16310512-a8fb-4ce8-aec3-573693067df9",
"channel": "data_streams_market",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 70000
},
"shops": null
},
{
"id": "d7542ec5-558f-4e98-9ff6-e049b24798fa",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "per_record",
"micro_cents_usd": 50000
},
"shops": null
},
{
"id": "5d52d8d8-b683-4ef4-9220-31347dc2237f",
"channel": "data_shop",
"licensing": {
"period": "P90D",
"license": {
"name": "narrative opendata license"
}
},
"pricing": {
"type": "max_price_per_record",
"micro_cents_usd": 30000
},
"shops": [
"only.on.tld.com"
]
}
],
"data_rules": {
"column_sets": [
{
"dataset_id": 99999,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
}
]
}
],
"attributes": [
{
"attribute_id": 123,
"fields": [
{
"field": "col1",
"filter": null,
"exported": true
},
{
"field": "col2",
"filter": "include_all_values_including_nulls_filter",
"exported": true
},
{
"field": "col3",
"filter": "include_only_if_not_null_filter",
"exported": true
},
{
"field": "col4",
"filter": {
"type": "include",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col5",
"filter": {
"type": "exclude",
"list": [
"this",
"that",
"that too",
"some more"
]
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": {
"type": "inclusive",
"value": "-100"
},
"max": {
"type": "inclusive",
"value": "100"
}
},
"exported": true
},
{
"field": "col6",
"filter": {
"min": null,
"max": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": false
},
{
"field": "col7",
"filter": {
"type": "include",
"list": [
"true"
]
},
"exported": true
},
{
"field": "col8",
"filter": {
"recency": "P30D",
"from": null,
"to": {
"type": "exclusive",
"value": "timestamp01"
}
},
"exported": true
},
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": true
}
],
"optional": true
},
{
"attribute_id": 321,
"fields": [
{
"field": "col9",
"filter": {
"expressions": [
"col9 > -90",
"col9 < 90"
]
},
"exported": false
}
],
"optional": false
}
],
"deduplication": {
"period": "P60D",
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9",
"col9.foo.bar"
]
}
]
},
"frequency_filter": {
"column_references": null,
"attribute_references": [
{
"attribute_id": 123,
"column_names": [
"col9.foo.bar"
]
}
],
"min_inclusive": 2,
"max_inclusive": 5
}
},
"auth_rules": {
"company_constraint": {
"type": "inclusion",
"company_ids": [
160,
1701
]
}
},
"created_by": 5000,
"created_at": "2021-06-29T10:58:36.726Z",
"updated_at": "2021-06-29T10:58:36.726Z",
"datasets": null
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Unique identifier for a data-stream.
The id of an existing company
345
A name.
1The DataStream's slug. Used for SEO/URLs.
1Show child attributes
A tag. Useful for searching and cataloging
1The DataStream's category. Useful for searches and cataloging.
1Show child attributes
Data rules capture the rules around how the data is handled within a data stream. The starting point might be an already predefined and active dataset(s) or the global data attributes on the platform.
Data rules might apply further filtering on the data being ingested and exported through the stream.
Show child attributes
Show child attributes
Unique id from a user who created it.
20
The instant this data-stream came into existence.
"2021-06-24T00:54:40.029056Z"
The instant this data-stream was last updated.
"2021-06-24T00:54:40.029056Z"
OK
The id of an existing company
345
A name.
1The DataStream's slug. Used for SEO/URLs.
1Show child attributes
A tag. Useful for searching and cataloging
1The DataStream's category. Useful for searches and cataloging.
1Show child attributes
Data rules capture the rules around how the data is handled within a data stream. The starting point might be an already predefined and active dataset(s) or the global data attributes on the platform.
Data rules might apply further filtering on the data being ingested and exported through the stream.
Show child attributes
Show child attributes
Unique id from a user who created it.
20
The instant this data-stream came into existence.
"2021-06-24T00:54:40.029056Z"
The instant this data-stream was last updated.
"2021-06-24T00:54:40.029056Z"