Skip to main content

Core CRUD

Basic Dataset creation, retrieval, update, and deletion operations.

GET /api/datasets

Search and filter Datasets with pagination and aggregations.

Authentication: Required

Query Parameters:

ParameterTypeDefaultDescription
qstringSearch query. Case-insensitive prefix match against slug, name, and description; embed * wildcards for a contains match (q=*orders)
typestringFilter by origin: datasource, upload, external
datasourcestringFilter by Datasource id (implies type=datasource)
sortstringAny Dataset attribute (name, createdAt, …); prefix with - for descending. Unknown fields are rejected with 400. No default sort.
limitinteger20Results per page (0 disables the limit)
startinteger0Pagination offset

The response is a paginated HAL collection: Dataset items under _embedded["inf:dataset"], pagination metadata and aggregations at the top level. Draft copies (editingId set) and embedded Datasets are excluded.

Search DatasetsGET /api/datasets?q=northwind&limit=10
q prefix-matches slug, name, and description (case-insensitive); embed * wildcards for contains, e.g. q=*orders. The collection carries type/datasource aggregations and collection-level permissions.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets?limit=10&start=0&q=northwind%2A"
}
},
"start": 0,
"count": 1,
"total": 1,
"aggs": {
"type": [
{
"id": "datasource",
"label": "From a Datasource",
"value": 1
}
],
"datasource": [
{
"id": "00000000-0000-4000-8000-000000000001",
"label": "Northwind",
"value": 1
}
],
"total": 1
},
"permissions": {
"export": true,
"create": true
},
"_embedded": {
"inf:dataset": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002"
},
"inf:draft": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/draft"
},
"inf:run": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_run"
},
"inf:benchmark": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_benchmark"
},
"inf:refresh": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_refresh"
},
"inf:data": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/data{?start,limit,q,sort,show,report}",
"templated": true
},
"inf:user-settings": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/settings"
},
"inf:query": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000003"
},
"inf:owner": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/owner"
},
"inf:search": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_search{?query,_source,sort,from,size,searchType,aggs,report,aggregations,alias,snapshots}",
"templated": true
},
"inf:mapping": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/mapping"
},
"inf:job-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/job-templates"
},
"inf:fields": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/fields"
},
"inf:count": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/count"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/comments"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/visual-templates"
},
"inf:dataset-tags": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/tags"
},
"inf:dataset-tag": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/tags/{tagId}",
"templated": true
},
"inf:discover": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/discover"
},
"inf:filters": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/filters"
},
"inf:dataset-shares": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/shares"
},
"inf:flow": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/flow"
},
"inf:group": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/group"
},
"inf:group-rows": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/group-rows"
},
"inf:dataset-share": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/shares/{principalId}",
"templated": true
},
"inf:import": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/_import"
},
"inf:exceptions": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/_exceptions"
},
"inf:search-aggregates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/_search-aggregates"
},
"inf:exporters": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/exporters"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/favorite"
},
"inf:export-bundle": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/_export"
},
"edit": {
"href": "https://informer.example.com/api/reports/admin%3Anorthwind-orders/_edit"
}
},
"naturalId": "admin:northwind-orders",
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"ownerId": "admin",
"slug": "northwind-orders",
"name": "Northwind Orders",
"description": "A dataset consisting of all orders in the northwind system (public schema)",
"embedded": false,
"esIndex": "docsex.acme.northwind-orders.1700000000000",
"esIndexName": "northwind-orders",
"esType": "data",
"records": 2155,
"size": "524288",
"source": "northwind-datasets",
"sourceId": null,
"params": {},
"dataUpdatedAt": "2026-01-15T16:20:00.000Z",
"dataExpiresAt": null,
"ttl": null,
"append": false,
"shared": false,
"timestampField": null,
"lastDurationMillis": "1500",
"windowSize": 500,
"settings": {},
"flow": [],
"esId": null,
"lastQueriedAt": "2026-01-15T16:20:00.000Z",
"esWorkers": 1,
"datasetFieldReportAccess": false,
"parentId": null,
"templateProcessorId": null,
"deleteDate": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"datasourceId": null,
"reportId": null,
"queryId": "00000000-0000-4000-8000-000000000003",
"editingId": null,
"folderId": null,
"datasource": null
}
]
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

Key Fields:

FieldDescription
startPagination offset
countNumber of items in this page
totalTotal matching Datasets
aggs.typeCounts by origin (datasource, upload, external); only nonzero types appear
aggs.datasourceCounts by Datasource
aggs.totalTotal Datasets readable by the user
permissionsCollection-level permissions (create, export)

Each item embeds its query's Datasource under _embedded["inf:datasource"] and carries per-Dataset permissions plus HAL links to sub-resources.

Permissions Required: None (returns only Datasets the user can read)


GET /api/datasets-list

Get a complete list of readable Datasets with tags, sharing info, and Elasticsearch stats. The response is a plain JSON array (not HAL-wrapped), used by the Datasets list page.

Authentication: Required

Flat list with stats and sharingGET /api/datasets-list
Plain array (not HAL). Record counts are recalculated per user against any applied filters; size comes from index stats.
Response · 200
[
{
"id": "00000000-0000-4000-8000-000000000001",
"slug": "northwind-orders",
"name": "Northwind Orders",
"description": "A dataset consisting of all orders in the northwind system (public schema)",
"records": 2155,
"size": 524288,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"dataUpdatedAt": "2026-01-15T16:20:00.000Z",
"shared": false,
"esType": "data",
"esIndex": "docsex.acme.northwind-orders.1700000000000",
"ownerId": "admin",
"datasetFieldReportAccess": false,
"queryId": "00000000-0000-4000-8000-000000000002",
"query": {
"id": "00000000-0000-4000-8000-000000000002",
"language": "informer",
"datasourceId": "00000000-0000-4000-8000-000000000003",
"datasource": {
"id": "00000000-0000-4000-8000-000000000003",
"type": "postgres",
"name": "Northwind",
"permissions": {
"assignTags": false,
"edit": false,
"delete": true,
"share": false,
"write": false,
"changeOwner": false,
"ping": false,
"scan": false,
"downloadSchema": false,
"importData": false,
"importSchema": false,
"rename": false,
"editConnection": false,
"createLink": false,
"setWrite": false,
"createSuite": false,
"createFieldExpression": false,
"createMapping": false,
"bundle": true,
"query": false
}
},
"permissions": {
"assignTags": true,
"changeOwner": true,
"copy": true,
"delete": true,
"edit": true,
"rename": true,
"run": true,
"share": true,
"write": true
}
},
"username": "admin",
"displayName": "acme Administrator",
"ownerName": "acme Administrator",
"favorite": false,
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"naturalId": "admin:northwind-orders",
"tags": []
}
]
Captured from the API examples test suite; ids and timestamps are normalized.

Key Fields:

FieldDescription
naturalIdComposite id (ownerId:slug) usable in URL paths
ownerNameDisplay name of the owning user or team
username / displayNamePresent for user-owned Datasets; team-owned ones carry teamId / teamName instead
favoriteWhether the current user has favorited this Dataset
recordsRecord count, recalculated for the requesting user against any applied filters
sizeIndex size in bytes from Elasticsearch stats
queryNested query object (language, datasourceId) with its own datasource and permissions; there is no top-level datasource
tagsArray of tag UUIDs (not full tag objects)
sharingArray of { principalId, accessLevel }; only present when the Dataset has shares
permissionsThe user's permission flags for this Dataset

Properties that are null (for example description, or esIndex/size when the Dataset has never been refreshed) are omitted from the entry.

Permissions Required: None (returns only Datasets the user can read)

ETag Support: Based on dataset, datasource, and field table changes.


GET /api/datasets/{id}

Get a single Dataset with full details: fields, filters, query, Datasource, snapshots, and live index stats.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringDataset UUID or ownerId:slug natural id
Get a DatasetGET /api/datasets/admin:northwind-orders
The id may be the UUID or the ownerId:slug natural id. Fields arrive sorted by position; filters are limited to public ones plus your own.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders"
},
"inf:draft": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/draft"
},
"inf:run": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_run"
},
"inf:benchmark": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_benchmark"
},
"inf:refresh": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_refresh"
},
"inf:data": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/data{?start,limit,q,sort,show,report}",
"templated": true
},
"inf:user-settings": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/settings"
},
"inf:query": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000001"
},
"inf:owner": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/owner"
},
"inf:search": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_search{?query,_source,sort,from,size,searchType,aggs,report,aggregations,alias,snapshots}",
"templated": true
},
"inf:mapping": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/mapping"
},
"inf:job-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/job-templates"
},
"inf:fields": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/fields"
},
"inf:count": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/count"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/comments"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/visual-templates"
},
"inf:dataset-tags": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/tags"
},
"inf:dataset-tag": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/tags/{tagId}",
"templated": true
},
"inf:discover": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000002/discover"
},
"inf:filters": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/filters"
},
"inf:dataset-shares": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/shares"
},
"inf:flow": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/flow"
},
"inf:group": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/group"
},
"inf:group-rows": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/group-rows"
},
"inf:dataset-share": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/shares/{principalId}",
"templated": true
},
"inf:import": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_import"
},
"inf:exceptions": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_exceptions"
},
"inf:search-aggregates": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_search-aggregates"
},
"inf:exporters": [
{
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/exporters"
},
{
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/exporters"
}
],
"inf:favorite": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/favorite"
},
"inf:export-bundle": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_export"
},
"edit": {
"href": "https://informer.example.com/api/reports/admin%3Anorthwind-orders/_edit"
},
"inf:permissions": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/permissions"
},
"inf:download": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/_download"
}
},
"naturalId": "admin:northwind-orders",
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"ownerId": "admin",
"slug": "northwind-orders",
"name": "Northwind Orders",
"description": "A dataset consisting of all orders in the northwind system (public schema)",
"embedded": false,
"esIndex": "docsex.acme.northwind-orders.1700000000000",
"esIndexName": "northwind-orders",
"esType": "data",
"records": 2155,
"size": 524288,
"source": "northwind-datasets",
"sourceId": null,
"params": {},
"dataUpdatedAt": "2026-01-15T16:20:00.000Z",
"dataExpiresAt": null,
"ttl": null,
"append": false,
"shared": false,
"timestampField": null,
"lastDurationMillis": "1500",
"windowSize": 500,
"settings": {},
"flow": [],
"esId": null,
"lastQueriedAt": "2026-01-15T16:20:00.000Z",
"esWorkers": 1,
"datasetFieldReportAccess": false,
"parentId": null,
"templateProcessorId": null,
"deleteDate": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"datasourceId": null,
"reportId": null,
"queryId": "00000000-0000-4000-8000-000000000001",
"editingId": null,
"folderId": null,
"datasource": null,
"upload": null,
"tags": [],
"_embedded": {
"inf:field": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/fields/OrderDate"
}
},
"label": "Order Date",
"source": "Indexed",
"id": "00000000-0000-4000-8000-000000000003",
"tenant": "acme",
"name": "OrderDate",
"datasetId": "00000000-0000-4000-8000-000000000002",
"position": 0,
"dataType": "date",
"script": null,
"typeMapping": {
"type": "date"
},
"formatOptions": null,
"lockFieldId": true,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"fieldId": null
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/fields/RequiredDate"
}
},
"label": "Required Date",
"source": "Indexed",
"id": "00000000-0000-4000-8000-000000000004",
"tenant": "acme",
"name": "RequiredDate",
"datasetId": "00000000-0000-4000-8000-000000000002",
"position": 1,
"dataType": "date",
"script": null,
"typeMapping": {
"type": "date"
},
"formatOptions": null,
"lockFieldId": true,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"fieldId": null
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Anorthwind-orders/fields/ShipAddress"
}
},
"label": "Ship Address",
"source": "Indexed",
"id": "00000000-0000-4000-8000-000000000005",
"tenant": "acme",
"name": "ShipAddress",
"datasetId": "00000000-0000-4000-8000-000000000002",
"position": 2,
"dataType": "keyword_text",
"script": null,
"typeMapping": {
"type": "keyword",
"fields": {
"text": {
"type": "text",
"fielddata": true
}
}
},
"formatOptions": null,
"lockFieldId": true,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"fieldId": null
},
"… 13 more items (16 total) — omitted from docs"
],
"inf:query": {
"_links": {
"self": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000001"
},
"edit": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000001/_edit"
},
"inf:owner": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000001/owner"
},
"inf:user-settings": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000001/settings"
},
"inf:input-templates": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000001/input-templates{?dataType,wildcard}",
"templated": true
}
},
"naturalId": "00000000-0000-4000-8000-000000000001",
"fields": null,
"permissions": {
"assignTags": true,
"changeOwner": true,
"copy": true,
"delete": true,
"edit": true,
"rename": true,
"run": true,
"share": true,
"write": true
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "admin",
"slug": null,
"name": null,
"description": null,
"shared": false,
"embedded": true,
"source": null,
"sourceId": null,
"settings": {},
"inputs": null,
"language": "informer",
"flow": [
{
"calculatedField": {
"alias": "salesperson",
"label": "Salesperson",
"script": "FirstName + ' ' + LastName"
}
},
{
"calculatedField": {
"alias": "orderAmount",
"label": "Order Amount",
"script": "UnitPrice * Quantity"
}
},
{
"calculatedField": {
"alias": "shipState",
"label": "Ship State",
"script": "ShipCountry === \"USA\" ? ShipRegion : null"
}
}
],
"payload": {
"fields": [
{
"id": "OrderDate",
"path": "OrderDate",
"type": "field",
"label": "Order Date",
"fieldId": "OrderDate",
"grouped": false,
"linkRef": null,
"rawType": "date",
"dataType": "date_tz",
"distinct": false,
"position": 0,
"aggregate": null
},
{
"id": "RequiredDate",
"path": "RequiredDate",
"type": "field",
"label": "Required Date",
"fieldId": "RequiredDate",
"grouped": false,
"linkRef": null,
"rawType": "date",
"dataType": "date_tz",
"distinct": false,
"position": 1,
"aggregate": null
},
{
"id": "ShipAddress",
"path": "ShipAddress",
"type": "field",
"label": "Ship Address",
"fieldId": "ShipAddress",
"grouped": false,
"linkRef": null,
"rawType": "character varying",
"dataType": "keyword_text",
"distinct": false,
"position": 2,
"aggregate": null
},
"… 10 more items (13 total) — omitted from docs"
],
"source": {
"id": "00000000-0000-4000-8000-000000000019:public+orders",
"schemaId": "public",
"mappingId": "orders"
},
"groupBy": [],
"linkRefs": [
{
"id": "employees",
"linkId": "00000000-0000-4000-8000-000000000019:public+orders:employees",
"details": {
"id": "00000000-0000-4000-8000-000000000019:public+orders:employees",
"defn": [
{
"toField": "EmployeeID",
"operator": "=",
"toSchema": "public",
"fromField": "EmployeeID",
"toMapping": "employees",
"fromSchema": "public",
"fromMapping": "orders"
}
],
"toId": "00000000-0000-4000-8000-000000000019:public+employees",
"type": "sql",
"fromId": "00000000-0000-4000-8000-000000000019:public+orders",
"linkId": "employees"
}
},
{
"id": "order-details",
"linkId": "00000000-0000-4000-8000-000000000019:public+orders:order-details",
"details": {
"id": "00000000-0000-4000-8000-000000000019:public+orders:order-details",
"defn": [
{
"toField": "OrderID",
"operator": "=",
"toSchema": "public",
"fromField": "OrderID",
"toMapping": "order_details",
"fromSchema": "public",
"fromMapping": "orders"
}
],
"toId": "00000000-0000-4000-8000-000000000019:public+order_details",
"type": "sql",
"fromId": "00000000-0000-4000-8000-000000000019:public+orders",
"linkId": "order-details"
}
},
{
"id": "order-details/products",
"linkId": "00000000-0000-4000-8000-000000000019:public+order_details:products",
"details": {
"id": "00000000-0000-4000-8000-000000000019:public+order_details:products",
"defn": [
{
"toField": "ProductID",
"operator": "=",
"toSchema": "public",
"fromField": "ProductID",
"toMapping": "products",
"fromSchema": "public",
"fromMapping": "order_details"
}
],
"toId": "00000000-0000-4000-8000-000000000019:public+products",
"type": "sql",
"fromId": "00000000-0000-4000-8000-000000000019:public+order_details",
"linkId": "products"
}
}
]
},
"defnUpdatedAt": null,
"limit": -1,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"datasourceId": "00000000-0000-4000-8000-000000000019",
"editingId": null,
"folderId": null,
"datasource": {
"defaultLinkType": "sql",
"aiSystemMessage": "This is a PostgresSQL database. Identifiers are case-sensitive by default. \n Always surround all column names, table names, and schema names in double-quotes (\"). \n For example:\n SELECT \"OrderID\", \"ShipCountry\" FROM \"public\".\"orders\" WHERE \"ShipCity\" = 'Raleigh';\n ---",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "admin:northwind",
"image": "/opt/informer/packages/informer-server/modules/sql/images/postgres.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000019",
"tenant": "acme",
"ownerId": "admin",
"slug": "northwind",
"name": "Northwind",
"description": null,
"embedded": false,
"type": "postgres",
"connection": {
"host": "localhost",
"pool": {
"max": 5,
"min": 0,
"idle": 10000,
"acquire": 10000
},
"port": 5432,
"user": "northwinduser",
"database": "northwind",
"password": "encrypted:iv:0000000000000000",
"idleTimeoutMillis": 7
},
"scannedAt": "2026-01-15T16:20:00.000Z",
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"schemas": [
"public"
],
"source": null,
"sourceId": null,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"data": null,
"appId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"fileId": null,
"shares": []
},
"_embedded": {
"inf:query-language": {
"_links": {
"self": {
"href": "https://informer.example.com/api/query-languages/informer"
}
},
"id": "informer",
"name": "common:ad_hoc_query",
"description": "query-languages:ad_hoc.description",
"image": "/assets/query-languages/images/query-designer.svg",
"color": "blue",
"preProcessors": [
"iqlTclPredicateValidationProcessor",
"resolveLinkRefProcessor",
"iqlPayloadFieldPermissionEvaluator",
"… 8 more items (11 total) — omitted from docs"
]
}
}
},
"inf:datasource": {
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019"
},
"inf:features": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/features"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/comments"
},
"inf:links": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/links{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:link-types": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/link-types"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/favorite"
},
"inf:settings-components": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/settings-components"
},
"inf:column-types": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/column-types"
},
"inf:mappings": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/mappings{?sort,limit,start,q,show,set,expand}",
"templated": true
},
"inf:scan": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/_scan"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000019/_ping"
},
"inf:query": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_query{?limit,output,cache,fakeData,unmappedFields,disableCriteria,clearCache,applyFormatting}",
"templated": true
},
"inf:query-string": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_query-string"
},
"inf:suites": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/suites{?mapping}",
"templated": true
}
},
"defaultLinkType": "sql",
"aiSystemMessage": "This is a PostgresSQL database. Identifiers are case-sensitive by default. \n Always surround all column names, table names, and schema names in double-quotes (\"). \n For example:\n SELECT \"OrderID\", \"ShipCountry\" FROM \"public\".\"orders\" WHERE \"ShipCity\" = 'Raleigh';\n ---",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "admin:northwind",
"image": "/opt/informer/packages/informer-server/modules/sql/images/postgres.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000019",
"tenant": "acme",
"ownerId": "admin",
"slug": "northwind",
"name": "Northwind",
"description": null,
"embedded": false,
"type": "postgres",
"connection": {
"host": "localhost",
"pool": {
"max": 5,
"min": 0,
"idle": 10000,
"acquire": 10000
},
"port": 5432,
"user": "northwinduser",
"database": "northwind",
"password": "encrypted:iv:0000000000000000",
"idleTimeoutMillis": 7
},
"scannedAt": "2026-01-15T16:20:00.000Z",
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"schemas": [
"public"
],
"source": null,
"sourceId": null,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"data": null,
"appId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"fileId": null,
"shares": [],
"_embedded": {
"inf:driver": {
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-drivers/postgres"
},
"edit": {
"href": "https://informer.example.com/api/datasource-drivers/postgres/connection-form"
},
"image": {
"href": "https://informer.example.com/api/datasource-drivers/postgres/image"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasource-drivers/postgres/_ping"
},
"inf:scan": {
"href": "https://informer.example.com/_scan"
}
},
"id": "postgres",
"queryDialect": "pg",
"name": "PostgreSQL",
"color": "blue",
"maxQueryParameters": 50000,
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"allowOnlyUpdateExisting": true,
"aiSystemMessage": "This is a PostgresSQL database. Identifiers are case-sensitive by default. \n Always surround all column names, table names, and schema names in double-quotes (\"). \n For example:\n SELECT \"OrderID\", \"ShipCountry\" FROM \"public\".\"orders\" WHERE \"ShipCity\" = 'Raleigh';\n ---",
"support": {
"queryDesigner": {
"iql": {
"supportsIgnoreCaseStringComparison": true,
"aggregatePayloadFields": true,
"countStarPayloadField": true,
"nativeOrdering": true,
"distinctValues": true
}
}
},
"create": true,
"allowFullScan": true,
"hasMappings": true,
"family": "sql",
"image": "/opt/informer/packages/informer-server/modules/sql/images/postgres.svg",
"defaultLinkType": "sql"
}
}
},
"inf:filter": [],
"inf:snapshot": []
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

Key Details:

SectionDescription
_linksHAL links to every sub-resource and action (data, search, refresh, draft, shares, …)
_embedded["inf:query"]The Dataset's query (language, datasourceId)
_embedded["inf:datasource"]The query's Datasource
_embedded["inf:field"]Dataset fields, sorted by position then name
_embedded["inf:filter"]Saved filters visible to you: public ones plus your own
_embedded["inf:snapshot"]Child snapshot Datasets
recordsLive record count from Elasticsearch, reflecting any filters applied for you
sizeIndex size in bytes
tagsArray of tag UUIDs
permissionsPermission flags for the current user (camelCase: write, addVisual, modifySettings, …)

Permissions Required: Read access (a Dataset you cannot read answers 404)


POST /api/datasets

Create a Dataset. The three creation styles are inline data, a Datasource query, and a file upload; they differ only in which payload keys you send. Unknown payload keys are stripped (there are no top-level id, type, or datasourceId keys on this route).

Authentication: Required

Permission: datasets:create. Without a query.language this requires the Designer role or above; with one, the query-language driver authorizes the call (Data Wizard or above unless the driver says otherwise).

Request Body:

FieldTypeDescription
namestringDisplay name; the slug is derived from it
descriptionstringDescription
dataarrayInline records; fields are derived from the rows
queryobjectQuery definition: { language, datasourceId, payload, fields }
queryIdstring (uuid)Copy the definition of an existing saved query
flowarrayFlow transformation steps (default [])
paramsanyQuery parameters
uploadstringUpload id for file import
uploadOptionsobjectUpload parsing options
progressstringProgress channel id for long imports
esIndex / esTypestringReserved; only the manager tenant may set esIndex

Timeout: 15 minutes (900000ms)

Response: 201 Created with a Location header pointing at the new Dataset.

Create a Dataset with inline dataPOST /api/datasets
Fields are derived from the rows. To build from a Datasource instead, pass a query object ({ language, datasourceId, payload, fields }); top-level id/type/datasourceId keys are not part of this route and are stripped.
Request body
{
"name": "Reorder Points",
"description": "Stock thresholds by product",
"data": [
{
"sku": "BEV-001",
"product": "Chai",
"reorderAt": 25
},
{
"sku": "BEV-002",
"product": "Chang",
"reorderAt": 40
}
]
}
Response · 201
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points"
},
"inf:draft": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/draft"
},
"inf:run": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_run"
},
"inf:benchmark": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_benchmark"
},
"inf:refresh": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_refresh"
},
"inf:data": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/data{?start,limit,q,sort,show,report}",
"templated": true
},
"inf:user-settings": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/settings"
},
"inf:query": {
"href": "https://informer.example.com/api/queries/"
},
"inf:owner": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/owner"
},
"inf:search": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_search{?query,_source,sort,from,size,searchType,aggs,report,aggregations,alias,snapshots}",
"templated": true
},
"inf:mapping": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/mapping"
},
"inf:job-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/job-templates"
},
"inf:fields": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/fields"
},
"inf:count": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/count"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/comments"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/visual-templates"
},
"inf:dataset-tags": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/tags"
},
"inf:dataset-tag": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/tags/{tagId}",
"templated": true
},
"inf:discover": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/discover"
},
"inf:filters": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/filters"
},
"inf:dataset-shares": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/shares"
},
"inf:flow": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/flow"
},
"inf:group": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/group"
},
"inf:group-rows": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/group-rows"
},
"inf:dataset-share": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/shares/{principalId}",
"templated": true
},
"inf:import": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_import"
},
"inf:exceptions": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_exceptions"
},
"inf:search-aggregates": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_search-aggregates"
},
"inf:exporters": [
{
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/exporters"
},
{
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/exporters"
}
],
"inf:favorite": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/favorite"
},
"inf:export-bundle": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_export"
},
"edit": {
"href": "https://informer.example.com/api/reports/admin%3Areorder-points/_edit"
},
"inf:permissions": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/permissions"
},
"inf:download": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_download"
}
},
"naturalId": "admin:reorder-points",
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"embedded": false,
"esType": "data",
"params": {},
"append": false,
"shared": false,
"timestampField": null,
"lastDurationMillis": 1500,
"windowSize": 500,
"settings": {},
"lastQueriedAt": null,
"esWorkers": 1,
"datasetFieldReportAccess": false,
"parentId": null,
"templateProcessorId": null,
"name": "Reorder Points",
"description": "Stock thresholds by product",
"flow": [],
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"slug": "reorder-points",
"esIndex": "docsex.acme.reorder-points.1700000000000",
"records": null,
"size": null,
"source": null,
"sourceId": null,
"dataUpdatedAt": "2026-01-15T16:20:00.000Z",
"ttl": null,
"dataExpiresAt": null,
"_altid": null,
"datasourceId": null,
"reportId": null,
"queryId": null,
"editingId": null,
"folderId": null,
"esId": null,
"esIndexName": "reorder-points",
"deleteDate": null,
"tags": [],
"_embedded": {
"inf:field": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/fields/product"
}
},
"label": "Product",
"source": "Indexed",
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"name": "product",
"datasetId": "00000000-0000-4000-8000-000000000001",
"position": 0,
"dataType": "keyword_text",
"script": null,
"typeMapping": {
"type": "keyword",
"fields": {
"text": {
"type": "text"
}
},
"ignore_above": 256
},
"formatOptions": null,
"lockFieldId": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"fieldId": null
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/fields/reorderAt"
}
},
"label": "Reorder At",
"source": "Indexed",
"id": "00000000-0000-4000-8000-000000000003",
"tenant": "acme",
"name": "reorderAt",
"datasetId": "00000000-0000-4000-8000-000000000001",
"position": 1,
"dataType": "float",
"script": null,
"typeMapping": {
"type": "float"
},
"formatOptions": null,
"lockFieldId": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"fieldId": null
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/fields/sku"
}
},
"label": "Sku",
"source": "Indexed",
"id": "00000000-0000-4000-8000-000000000004",
"tenant": "acme",
"name": "sku",
"datasetId": "00000000-0000-4000-8000-000000000001",
"position": 2,
"dataType": "keyword_text",
"script": null,
"typeMapping": {
"type": "keyword",
"fields": {
"text": {
"type": "text"
}
},
"ignore_above": 256
},
"formatOptions": null,
"lockFieldId": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"fieldId": null
}
]
}
}
Captured from the API examples test suite; ids and timestamps are normalized.
Create a Dataset from a Datasource queryPOST /api/datasets
fields declares the columns the query produces (name + dataType per field). Native SQL requires full access to the Datasource; refresh the Dataset afterwards to load rows into the index.
Request body
{
"name": "Category Sales",
"description": "Revenue by product category",
"query": {
"language": "sql",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"payload": "select c.\"CategoryName\", sum(od.\"UnitPrice\" * od.\"Quantity\") as revenue from order_details od join products p on p.\"ProductID\" = od.\"ProductID\" join categories c on c.\"CategoryID\" = p.\"CategoryID\" group by c.\"CategoryName\"",
"fields": [
{
"name": "CategoryName",
"dataType": "string"
},
{
"name": "revenue",
"dataType": "number"
}
]
}
}
Response · 201
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales"
},
"inf:draft": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/draft"
},
"inf:run": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_run"
},
"inf:benchmark": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_benchmark"
},
"inf:refresh": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_refresh"
},
"inf:data": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/data{?start,limit,q,sort,show,report}",
"templated": true
},
"inf:user-settings": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/settings"
},
"inf:query": {
"href": "https://informer.example.com/api/queries/00000000-0000-4000-8000-000000000002"
},
"inf:owner": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/owner"
},
"inf:search": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_search{?query,_source,sort,from,size,searchType,aggs,report,aggregations,alias,snapshots}",
"templated": true
},
"inf:mapping": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/mapping"
},
"inf:job-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000003/job-templates"
},
"inf:fields": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/fields"
},
"inf:count": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/count"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/comments"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/visual-templates"
},
"inf:dataset-tags": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/tags"
},
"inf:dataset-tag": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/tags/{tagId}",
"templated": true
},
"inf:discover": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000003/discover"
},
"inf:filters": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/filters"
},
"inf:dataset-shares": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/shares"
},
"inf:flow": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/flow"
},
"inf:group": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/group"
},
"inf:group-rows": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/group-rows"
},
"inf:dataset-share": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/shares/{principalId}",
"templated": true
},
"inf:import": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_import"
},
"inf:exceptions": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_exceptions"
},
"inf:search-aggregates": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_search-aggregates"
},
"inf:exporters": [
{
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/exporters"
},
{
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/exporters"
}
],
"inf:favorite": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/favorite"
},
"inf:export-bundle": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_export"
},
"edit": {
"href": "https://informer.example.com/api/reports/admin%3Acategory-sales/_edit"
},
"inf:permissions": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/permissions"
},
"inf:download": {
"href": "https://informer.example.com/api/datasets/admin%3Acategory-sales/_download"
}
},
"naturalId": "admin:category-sales",
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"id": "00000000-0000-4000-8000-000000000003",
"tenant": "acme",
"embedded": false,
"esType": "data",
"params": {},
"append": false,
"shared": false,
"timestampField": null,
"lastDurationMillis": "1500",
"windowSize": 500,
"settings": {},
"lastQueriedAt": null,
"esWorkers": 1,
"datasetFieldReportAccess": false,
"parentId": null,
"templateProcessorId": null,
"name": "Category Sales",
"description": "Revenue by product category",
"flow": [],
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"slug": "category-sales",
"esIndex": null,
"records": null,
"size": null,
"source": null,
"sourceId": null,
"dataUpdatedAt": null,
"ttl": null,
"dataExpiresAt": null,
"_altid": null,
"datasourceId": null,
"reportId": null,
"queryId": "00000000-0000-4000-8000-000000000002",
"editingId": null,
"folderId": null,
"esId": null,
"esIndexName": "category-sales",
"deleteDate": null,
"tags": [],
"_embedded": {
"inf:field": []
}
}
Captured from the API examples test suite; ids and timestamps are normalized.
Long-Running Operation

Dataset creation with an upload import can take minutes for large files. Use the progress parameter to track status.


PUT /api/datasets/{id}

Update Dataset properties.

Authentication: Required

Permission: dataset:write (Data Wizard or above on the owning team)

Path Parameters:

ParameterTypeDescription
idstringDataset UUID or ownerId:slug natural id

The payload is applied to the Dataset's attributes as given (name, description, settings, …). Only the manager tenant may change esIndex.

Update a DatasetPUT /api/datasets/00000000-0000-4000-8000-000000000001
Request body
{
"name": "Reorder Points",
"description": "Stock thresholds by product, reviewed weekly"
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001"
},
"inf:draft": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/draft"
},
"inf:run": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_run"
},
"inf:benchmark": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_benchmark"
},
"inf:refresh": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_refresh"
},
"inf:data": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/data{?start,limit,q,sort,show,report}",
"templated": true
},
"inf:user-settings": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/settings"
},
"inf:query": {
"href": "https://informer.example.com/api/queries/"
},
"inf:owner": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/owner"
},
"inf:search": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_search{?query,_source,sort,from,size,searchType,aggs,report,aggregations,alias,snapshots}",
"templated": true
},
"inf:mapping": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/mapping"
},
"inf:job-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/job-templates"
},
"inf:fields": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/fields"
},
"inf:count": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/count"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/comments"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/visual-templates"
},
"inf:dataset-tags": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/tags"
},
"inf:dataset-tag": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/tags/{tagId}",
"templated": true
},
"inf:discover": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/discover"
},
"inf:filters": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/filters"
},
"inf:dataset-shares": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/shares"
},
"inf:flow": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/flow"
},
"inf:group": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/group"
},
"inf:group-rows": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/group-rows"
},
"inf:dataset-share": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/shares/{principalId}",
"templated": true
},
"inf:import": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/_import"
},
"inf:exceptions": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/_exceptions"
},
"inf:search-aggregates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/_search-aggregates"
},
"inf:exporters": [
{
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/exporters"
},
{
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/exporters"
}
],
"inf:favorite": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/favorite"
},
"inf:export-bundle": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/_export"
},
"edit": {
"href": "https://informer.example.com/api/reports/admin%3Areorder-points/_edit"
},
"inf:permissions": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/permissions"
},
"inf:download": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/_download"
}
},
"naturalId": "admin:reorder-points",
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "admin",
"slug": "reorder-points",
"name": "Reorder Points",
"description": "Stock thresholds by product, reviewed weekly",
"embedded": false,
"esIndex": "docsex.acme.reorder-points.1700000000000",
"esIndexName": "reorder-points",
"esType": "data",
"records": null,
"size": null,
"source": null,
"sourceId": null,
"params": {},
"dataUpdatedAt": "2026-01-15T16:20:00.000Z",
"dataExpiresAt": null,
"ttl": null,
"append": false,
"shared": false,
"timestampField": null,
"lastDurationMillis": "1500",
"windowSize": 500,
"settings": {},
"flow": [],
"esId": null,
"lastQueriedAt": null,
"esWorkers": 1,
"datasetFieldReportAccess": false,
"parentId": null,
"templateProcessorId": null,
"deleteDate": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"datasourceId": null,
"reportId": null,
"queryId": null,
"editingId": null,
"folderId": null,
"query": null,
"tags": []
}
Captured from the API examples test suite; ids and timestamps are normalized.
Update Scope

Use this endpoint for metadata. Data changes go through Data Operations, field changes through Fields, and query/definition changes through the draft workflow.


DELETE /api/datasets/{id}

Delete a Dataset permanently, including its data, fields, filters, visuals, comments, and snapshots.

Authentication: Required

Permission: dataset:write (Data Wizard or above on the owning team)

Delete a DatasetDELETE /api/datasets/00000000-0000-4000-8000-000000000001
Permanent: removes the row, its fields, filters, visuals, comments, snapshots, and the search index. Responds 200 with an empty body.
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.
Permanent Deletion

There is no soft delete for Datasets; this cannot be undone.


PATCH /api/datasets/{id}

Apply JSON Patch operations to a Dataset.

Authentication: Required

Permission: dataset:write (Data Wizard or above on the owning team)

Request Body: a JSON Patch document (array of operations).

Patch a Dataset (JSON Patch)PATCH /api/datasets/00000000-0000-4000-8000-000000000001
remove operations are rewritten as add-with-null; any /ownerId operation is silently dropped.
Request body
[
{
"op": "replace",
"path": "/description",
"value": "Stock thresholds by product"
}
]
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points"
},
"inf:draft": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/draft"
},
"inf:run": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_run"
},
"inf:benchmark": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_benchmark"
},
"inf:refresh": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_refresh"
},
"inf:data": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/data{?start,limit,q,sort,show,report}",
"templated": true
},
"inf:user-settings": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/settings"
},
"inf:query": {
"href": "https://informer.example.com/api/queries/"
},
"inf:owner": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/owner"
},
"inf:search": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_search{?query,_source,sort,from,size,searchType,aggs,report,aggregations,alias,snapshots}",
"templated": true
},
"inf:mapping": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/mapping"
},
"inf:job-templates": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/job-templates"
},
"inf:fields": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/fields"
},
"inf:count": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/count"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/comments"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/visual-templates"
},
"inf:dataset-tags": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/tags"
},
"inf:dataset-tag": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/tags/{tagId}",
"templated": true
},
"inf:discover": {
"href": "https://informer.example.com/api/datasets/00000000-0000-4000-8000-000000000001/discover"
},
"inf:filters": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/filters"
},
"inf:dataset-shares": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/shares"
},
"inf:flow": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/flow"
},
"inf:group": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/group"
},
"inf:group-rows": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/group-rows"
},
"inf:dataset-share": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/shares/{principalId}",
"templated": true
},
"inf:import": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_import"
},
"inf:exceptions": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_exceptions"
},
"inf:search-aggregates": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_search-aggregates"
},
"inf:exporters": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/exporters"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/favorite"
},
"inf:export-bundle": {
"href": "https://informer.example.com/api/datasets/admin%3Areorder-points/_export"
},
"edit": {
"href": "https://informer.example.com/api/reports/admin%3Areorder-points/_edit"
}
},
"naturalId": "admin:reorder-points",
"permissions": {
"edit": true,
"share": true,
"delete": true,
"write": true,
"addVisual": true,
"deleteVisual": true,
"changeOwner": true,
"copy": true,
"rename": true,
"refresh": true,
"modifyFlows": true,
"replaceFile": true,
"modifySettings": true,
"createDataView": true,
"assignTags": true,
"createFilter": true,
"scriptFields": true,
"setIndex": false
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "admin",
"slug": "reorder-points",
"name": "Reorder Points",
"description": "Stock thresholds by product",
"embedded": false,
"esIndex": "docsex.acme.reorder-points.1700000000000",
"esIndexName": "reorder-points",
"esType": "data",
"records": null,
"size": null,
"source": null,
"sourceId": null,
"params": {},
"dataUpdatedAt": "2026-01-15T16:20:00.000Z",
"dataExpiresAt": null,
"ttl": null,
"append": false,
"shared": false,
"timestampField": null,
"lastDurationMillis": "1500",
"windowSize": 500,
"settings": {},
"flow": [],
"esId": null,
"lastQueriedAt": null,
"esWorkers": 1,
"datasetFieldReportAccess": false,
"parentId": null,
"templateProcessorId": null,
"deleteDate": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"datasourceId": null,
"reportId": null,
"queryId": null,
"editingId": null,
"folderId": null,
"query": null
}
Captured from the API examples test suite; ids and timestamps are normalized.

Notes:

  • Operations on /ownerId are silently dropped (use PUT /owner to transfer ownership)
  • remove operations are converted to add with a null value
  • The response carries a Location header with the Dataset's canonical URL