Schema & registries
Read-only endpoints exposing a datasource's schema graph and driver metadata.
GET /api/datasources/{id}/schema.json
The datasource's mappings-and-links graph. Pass ?download=true to receive it as
a file attachment.
[
{
"as": "region",
"from": [
"public+territories"
],
"to": [
"public+region"
],
"name": "Region",
"type": "sql",
"defn": [
{
"toField": "RegionID",
"operator": "=",
"toSchema": "public",
"fromField": "RegionID",
"toMapping": "region",
"fromSchema": "public",
"fromMapping": "territories"
}
]
},
{
"as": "suppliers",
"from": [
"public+products"
],
"to": [
"public+suppliers"
],
"name": "Supplier",
"type": "sql",
"defn": [
{
"toField": "SupplierID",
"operator": "=",
"toSchema": "public",
"fromField": "SupplierID",
"toMapping": "suppliers",
"fromSchema": "public",
"fromMapping": "products"
}
]
},
{
"as": "categories",
"from": [
"public+products"
],
"to": [
"public+categories"
],
"name": "Category",
"type": "sql",
"defn": [
{
"toField": "CategoryID",
"operator": "=",
"toSchema": "public",
"fromField": "CategoryID",
"toMapping": "categories",
"fromSchema": "public",
"fromMapping": "products"
}
]
},
"… 9 more items (12 total) — omitted from docs"
]
GET /api/datasources/{id}/autohint
Suggest likely links between mappings by matching field names and types — the basis for auto-detected relationships.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/autohint"
}
},
"mappings": {
"usstates": {
"fields": [
{
"id": "StateID",
"name": "State"
},
{
"id": "StateName",
"name": "State Name"
},
{
"id": "StateAbbr",
"name": "State Abbr"
},
"… 1 more items (4 total) — omitted from docs"
],
"name": "Usstates"
},
"territories": {
"fields": [
{
"id": "TerritoryID",
"name": "Territory"
},
{
"id": "TerritoryDescription",
"name": "Territory Description"
},
{
"id": "RegionID",
"name": "Region"
}
],
"name": "Territories"
},
"suppliers": {
"fields": [
{
"id": "SupplierID",
"name": "Supplier"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Suppliers"
},
"shippers_tmp": {
"fields": [
{
"id": "ShipperID",
"name": "Shipper"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "Phone",
"name": "Phone"
}
],
"name": "Shippers Tmp"
},
"shippers": {
"fields": [
{
"id": "ShipperID",
"name": "Shipper"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "Phone",
"name": "Phone"
}
],
"name": "Shippers"
},
"region": {
"fields": [
{
"id": "RegionID",
"name": "Region"
},
{
"id": "RegionDescription",
"name": "Region Description"
}
],
"name": "Region"
},
"products": {
"fields": [
{
"id": "ProductID",
"name": "Product"
},
{
"id": "ProductName",
"name": "Product Name"
},
{
"id": "SupplierID",
"name": "Supplier"
},
"… 7 more items (10 total) — omitted from docs"
],
"name": "Products"
},
"orders_1998": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 12 more items (15 total) — omitted from docs"
],
"name": "Orders 1998"
},
"orders_1997": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 12 more items (15 total) — omitted from docs"
],
"name": "Orders 1997"
},
"orders_1996": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 12 more items (15 total) — omitted from docs"
],
"name": "Orders 1996"
},
"orders": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 11 more items (14 total) — omitted from docs"
],
"name": "Orders"
},
"order_details_1998": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 3 more items (6 total) — omitted from docs"
],
"name": "Order Details 1998"
},
"order_details_1997": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 3 more items (6 total) — omitted from docs"
],
"name": "Order Details 1997"
},
"order_details_1996": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 3 more items (6 total) — omitted from docs"
],
"name": "Order Details 1996"
},
"order_details": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 2 more items (5 total) — omitted from docs"
],
"name": "Order Details"
},
"employeeterritories": {
"fields": [
{
"id": "EmployeeID",
"name": "Employee"
},
{
"id": "TerritoryID",
"name": "Territory"
}
],
"name": "Employeeterritories"
},
"employees": {
"fields": [
{
"id": "BirthDate",
"name": "Birth Date"
},
{
"id": "HireDate",
"name": "Hire Date"
},
{
"id": "Address",
"name": "Address"
},
"… 15 more items (18 total) — omitted from docs"
],
"name": "Employees"
},
"customers_1998": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Customers 1998"
},
"customers_1997": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Customers 1997"
},
"customers_1996": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Customers 1996"
},
"customers": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 8 more items (11 total) — omitted from docs"
],
"name": "Customers"
},
"customerdemographics": {
"fields": [
{
"id": "CustomerTypeID",
"name": "Customer Type"
},
{
"id": "CustomerDesc",
"name": "Customer Desc"
}
],
"name": "Customerdemographics"
},
"customercustomerdemo": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CustomerTypeID",
"name": "Customer Type"
}
],
"name": "Customercustomerdemo"
},
"categories": {
"fields": [
{
"id": "CategoryID",
"name": "Category"
},
{
"id": "CategoryName",
"name": "Category Name"
},
{
"id": "Description",
"name": "Description"
},
"… 1 more items (4 total) — omitted from docs"
],
"name": "Categories"
}
}
}
GET /api/datasources/{id}/column-types
The column types the datasource's driver supports (used when adding or altering
fields). Requires datasource:ping.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/column-types"
}
},
"items": [
"bigint",
"bigserial",
"bit",
"… 55 more items (58 total) — omitted from docs"
],
"start": 0,
"count": 58,
"total": 58
}
GET /api/datasources/{id}/restricted-fields
The fields restricted by field-level security across the datasource's shares.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/restricted-fields"
}
},
"start": 0,
"count": 0,
"total": 0,
"_embedded": {
"inf:field": []
}
}
GET /api/datasources/{id}/mapping-select-list
A lightweight { id, label } list of the datasource's mappings, for pickers.
[
{
"id": "00000000-0000-4000-8000-000000000001:public+categories",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"restId": "public+categories",
"name": "Categories",
"description": null,
"mappingId": "categories",
"schemaId": "public",
"records": 8,
"hidden": false,
"size": 524288,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"data": {
"size": "524288",
"records": "8",
"schemaId": "public",
"mappingId": "categories"
},
"permissions": {
"write": true,
"hide": true,
"delete": true,
"rename": true,
"changeSet": true,
"restoreDefaults": true,
"scan": true
}
},
{
"id": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"restId": "public+customercustomerdemo",
"name": "Customercustomerdemo",
"description": null,
"mappingId": "customercustomerdemo",
"schemaId": "public",
"records": 0,
"hidden": false,
"size": 524288,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"data": {
"size": "524288",
"records": "0",
"schemaId": "public",
"mappingId": "customercustomerdemo"
},
"permissions": {
"write": true,
"hide": true,
"delete": true,
"rename": true,
"changeSet": true,
"restoreDefaults": true,
"scan": true
}
},
{
"id": "00000000-0000-4000-8000-000000000001:public+customerdemographics",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"restId": "public+customerdemographics",
"name": "Customerdemographics",
"description": null,
"mappingId": "customerdemographics",
"schemaId": "public",
"records": 0,
"hidden": false,
"size": 524288,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"data": {
"size": "524288",
"records": "0",
"schemaId": "public",
"mappingId": "customerdemographics"
},
"permissions": {
"write": true,
"hide": true,
"delete": true,
"rename": true,
"changeSet": true,
"restoreDefaults": true,
"scan": true
}
},
"… 21 more items (24 total) — omitted from docs"
]
GET /api/datasources/{id}/settings-components
The driver-specific settings UI components for the datasource.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/settings-components"
}
},
"items": [],
"start": 0,
"count": 0,
"total": 0
}
GET /api/datasources/{id}/web-response-parser-templates
The response-parser templates available for a web datasource.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/web-response-parser-templates"
}
},
"items": [
{
"detective": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001:0",
"value": {
"responseParserType": "default"
}
},
{
"detective": "custom-script-detective",
"id": "custom-script-detective:0",
"value": {
"responseParserType": "custom-script"
}
}
],
"start": 0,
"count": 2,
"total": 2
}
GET /api/schema
Links across the tenant, filtered by ?type= (a link type, repeatable; default
all). Renders the cross-datasource schema graph.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/schema?type=all"
}
},
"00000000-0000-4000-8000-000000000001:public+products": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+products:categories",
"name": "Category",
"linkId": "categories",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+categories",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "categories",
"fromId": "00000000-0000-4000-8000-000000000001:public+products",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "products",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+products",
"00000000-0000-4000-8000-000000000001:public+categories"
]
},
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+products:suppliers",
"name": "Supplier",
"linkId": "suppliers",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+suppliers",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "suppliers",
"fromId": "00000000-0000-4000-8000-000000000001:public+products",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "products",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+products",
"00000000-0000-4000-8000-000000000001:public+suppliers"
]
}
],
"00000000-0000-4000-8000-000000000001:public+orders": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+orders:customers",
"name": "Customer",
"linkId": "customers",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+customers",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "customers",
"fromId": "00000000-0000-4000-8000-000000000001:public+orders",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "orders",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+orders",
"00000000-0000-4000-8000-000000000001:public+customers"
]
},
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+orders:employees",
"name": "Employee",
"linkId": "employees",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+employees",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "employees",
"fromId": "00000000-0000-4000-8000-000000000001:public+orders",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "orders",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+orders",
"00000000-0000-4000-8000-000000000001:public+employees"
]
},
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+orders:order-details",
"name": "Order Detail",
"linkId": "order-details",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+order_details",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "order_details",
"fromId": "00000000-0000-4000-8000-000000000001:public+orders",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "orders",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+orders",
"00000000-0000-4000-8000-000000000001:public+order_details"
]
},
"… 1 more items (4 total) — omitted from docs"
],
"00000000-0000-4000-8000-000000000001:public+customers": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+customers:customercustomerdemo",
"name": "Customercustomerdemo",
"linkId": "customercustomerdemo",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "customercustomerdemo",
"fromId": "00000000-0000-4000-8000-000000000001:public+customers",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "customers",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+customers",
"00000000-0000-4000-8000-000000000001:public+customercustomerdemo"
]
}
],
"00000000-0000-4000-8000-000000000001:public+customercustomerdemo": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo:customerdemographics",
"name": "Customerdemographics",
"linkId": "customerdemographics",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+customerdemographics",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "customerdemographics",
"fromId": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "customercustomerdemo",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"00000000-0000-4000-8000-000000000001:public+customerdemographics"
]
}
],
"00000000-0000-4000-8000-000000000001:public+employees": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+employees:employeeterritories",
"name": "Employeeterritories",
"linkId": "employeeterritories",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+employeeterritories",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "employeeterritories",
"fromId": "00000000-0000-4000-8000-000000000001:public+employees",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "employees",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+employees",
"00000000-0000-4000-8000-000000000001:public+employeeterritories"
]
}
],
"00000000-0000-4000-8000-000000000001:public+order_details": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+order_details:products",
"name": "Product",
"linkId": "products",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+products",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "products",
"fromId": "00000000-0000-4000-8000-000000000001:public+order_details",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "order_details",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+order_details",
"00000000-0000-4000-8000-000000000001:public+products"
]
}
],
"00000000-0000-4000-8000-000000000001:public+territories": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+territories:region",
"name": "Region",
"linkId": "region",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+region",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "region",
"fromId": "00000000-0000-4000-8000-000000000001:public+territories",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "territories",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+territories",
"00000000-0000-4000-8000-000000000001:public+region"
]
}
],
"00000000-0000-4000-8000-000000000001:public+employeeterritories": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+employeeterritories:territories",
"name": "Territories",
"linkId": "territories",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+territories",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "territories",
"fromId": "00000000-0000-4000-8000-000000000001:public+employeeterritories",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "employeeterritories",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+employeeterritories",
"00000000-0000-4000-8000-000000000001:public+territories"
]
}
]
}
GET /api/web-datasource-auth-drivers
The authentication drivers available for web datasources.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers"
}
},
"start": 0,
"count": 5,
"total": 5,
"_embedded": {
"inf:driver": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers/basicUserCredentialAuth"
}
},
"id": "basicUserCredentialAuth",
"name": "Basic Auth",
"editComponent": "basicUserCredentialAuthEditor"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers/bearerTokenAuth"
}
},
"id": "bearerTokenAuth",
"name": "Bearer Token",
"editComponent": "bearerTokenAuthEditor"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers/apiKeyAuth"
}
},
"id": "apiKeyAuth",
"name": "API Key",
"editComponent": "apiKeyAuthEditor"
},
"… 2 more items (5 total) — omitted from docs"
]
}
}
GET /api/web-response-parser-drivers
The response-parser drivers available for web datasources.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers"
}
},
"start": 0,
"count": 5,
"total": 5,
"_embedded": {
"inf:driver": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers/default"
}
},
"id": "default",
"helpComponents": {
"responseParser": "defaultResponseParserHelp"
},
"name": "JSON Object Array",
"embedded": false
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers/jira-cloud"
}
},
"id": "jira-cloud",
"name": "JIRA Cloud",
"embedded": false
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers/custom-script"
}
},
"id": "custom-script",
"helpComponents": {
"responseParser": "customScriptResponseParserHelp"
},
"editComponent": "customScriptResponseParserEditor",
"name": "Custom Script",
"embedded": false
},
"… 2 more items (5 total) — omitted from docs"
]
}
}
Binary and live routes
These are documented by contract (no captured example):
GET /api/datasources/\{id\}/imageandGET /api/datasource-drivers/\{id\}/imagestream image bytes (the datasource/driver icon), not JSON.POST /api/datasource-drivers/\{id\}/_pingopens a live connection with the supplied connection config to validate a driver before a datasource is saved; it returns200when reachable or503with the driver error.